|
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 >= 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) >= 2</condition>
<condition>count(step) < 10000</condition>
<context datatype="yes">Schedule</context>
<description> <el>step/stepDate</el> must be unique.</description>
</rule> </rules> |
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