[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FpML-VAL Validation Rule Specifications - (HTML implementation of shared and IRD rules)



This email contains updated material for review and discussion at the next call.

-          includes new refinements around functions (definition, linking) and conditions (expressed in English whenever possible)

-          instead of reviewing a prototype implementation (circulated previously), this email contains live rules which have been implemented in the new format (see html in zip or generate from \trunk)

o    http://www.fpml.org/issues/view.php?id=716 shared-18 (new)

o    http://www.fpml.org/issues/view.php?id=717 shared-19 (new)

o    http://www.fpml.org/issues/view.php?id=719 shared-20 (new)

o    http://www.fpml.org/issues/view.php?id=720 shared-21 (new)

o    http://www.fpml.org/issues/view.php?id=721 shared-22 (new)

o    http://www.fpml.org/issues/view.php?id=722 shared-23 (new)

o    http://www.fpml.org/issues/view.php?id=723 shared-24 (new)

o    http://www.fpml.org/issues/view.php?id=724 shared-25 (new)

o    http://www.fpml.org/issues/view.php?id=695    ird-25 (new)

o    http://www.fpml.org/issues/view.php?id=715    ird-48 (new)

o    http://www.fpml.org/issues/view.php?id=689    ird-57 (new)

o    http://www.fpml.org/issues/view.php?id=690    ird-58 (new)

 

---

 

The validation WG has adopted new validation rule specifications. Attached are HTML renditions of Shared and IRD rules which give a sense of how rules will appear in the spec going forward.

 

The objective is “to improve validation rules by defining a set of principles and guidelines for writing rules and a standard format/notation for representing the rules. The motivation is to ensure the rule are precise and that the terminology used to express the rules is mutually consistent.” [Mark A.(JPM)]

 

Please find attached:

-          ZIP – validation rule specifications proposed by JPM 5/29 and adopted by the Validation WG 6/03

-          HTML ZIP –implementation of the Shared and IRD Rules using the new layout/specs

-          The new specifications required the addition of new tags in the source XML (details below)

 

XML coding details

 

Proposed additions to the XML syntax to support the new formatting of validation rules:

-          <globalConditions> (formerly, <preconditions>) (used to represent global conditions shared across many rules. E.g., ISDA1999)

-          <conditions> (new!) (used to represent conditions local to one rule – i.e., not shared)

-          <functions> (new!) (defines a new term which has precise meaning that can be used as a clause or condition when expressing rules)

 

The XSL transformation used to convert the new XML syntax to HTML is backward compatible:

-          Existing rules don’t have to be rewritten to produce the new HTML representation;

If none of the new tags (<function>, <condition>) are used, there’s no impact (e.g., shared-1)

 

Excerpt of new XML syntax to express validation rules:

<rules>

                <introduction>

                                <para></para>

                </introduction>

                <namespace>&fpml.namespace.uri;</namespace>

                <globalConditions>

<para>The Validation Preconditions only apply when specific rules reference them. The following preconditions are always to be executed relative to the root of the FpML document being validated. The context of the rule is NOT carried through to the precondition.</para>

                                <condition id="ISDA3000-test">

                                                <context datatype="yes">Trade</context>

                                                <context datatype="yes">Contract</context>

The <el>documentation/contractualDefinitions</el> element or the <el>documentation/masterConfirmation/masterConfirmationType</el> element contains <value>ISDA3000Credit</value>.

                                </condition>

                </globalConditions>

                <functions>

                                <function id="same-routingIds" name="same-routingIds">

                                                <description>All <el>routingId</el>s must be the same.</description>

                                                <parameters>

                                                                <parameter minOccurs="1">

                                                                                <name>routing</name>

                                                                                <type>fpml:Routing</type>

                                                                </parameter>

                                                </parameters>

                                                <test>All <el>routing/routingId</el> must be the same and all

                                                <el>routing/routingId/@routingIdCodeScheme</el> must be the same.</test>

                                <result>true/false (boolean)</result>

                                </function>

                                <function id="same-currency" name="same-currency">

<description>The equivalence test is to compare currencies are the same. (Note: This is a test implementation of the "same-currency" condition used in other validation rule pages, not used in any shared rules on this page.)</description>

                                                <parameters>

                                                                <parameter minOccurs="2" maxOccurs="unbounded">

                                                                                <name>money</name>

                                                                                <type>fpml:Money</type>

                                                                </parameter>

                                                </parameters>

                                                <result>true/false (boolean)</</result>

                                                <test>All (<el>money/currency</el> and <el>money/currency/@currencyScheme</el>) must be the same</test>

                                </function>

                                </functions>

                <rule id="shared-1"…>

                                <context datatype="yes">BusinessDayAdjustments</context>

                                <description>

                                                <el>businessCentersReference</el> or <el>businessCenters</el> must exist if and only if …</description>

                                <testcases>

                                                <valid href="valid-shared-1-01.xml"/>

                                                <invalid href="invalid-shared-1-01.xml"/>

                                </testcases>

                </rule>

                <rule id="shared-24">

                                <comment>Each routingId is unique within a set of routing Ids.</comment>

                                <context datatype="yes">RoutingIds</context>

                                <description> <el>routingId</el> must be unique and <el>routing</el>s should have the

                                <function href="">.</description>

                </rule>

                <rule id="shared-25">

                                <comment>Each step happens on a separate date.</comment>

                                <condition>The number of <el>step</el>s must be &gt;= 2</condition>

                                <context datatype="yes">Schedule</context>

                                <description> <el>step/stepDate</el> must be unique.</description>

                </rule>

                <rule id="shared-26-test">

                                <comment>Each step happens on a separate date.</comment>

                                <condition href="">

                                <condition>count(step) &gt;= 2</condition>

                                <condition>count(step) &lt; 10000</condition>

                                <context datatype="yes">Schedule</context>

                                <description> <el>step/stepDate</el> must be unique.</description>

                </rule>

</rules>

 

************************************************************************************************************************** The information contained in either this email and, if applicable, the attachment, are confidential and are intended only for the recipient. The contents of either the email or the attachment may not be disclosed or used by anyone other than the addressee. If you are not the intended recipient(s), any use, disclosure, copying, or distribution is prohibited and may be unlawful. If you have received this communication in error, please notify us by e-mail at isda@xxxxxxxx then delete the e-mail and all attachments and any copies thereof. This communication is part of an ISDA process and is not intended for unauthorized use or distribution. **************************************************************************************************************************

Attachment: Validation rule specifications - principles and guidelines.doc.zip
Description: Validation rule specifications - principles and guidelines.doc.zip

Attachment: ird-shared-rules-html-20080709.zip
Description: ird-shared-rules-html-20080709.zip