FpML Issues Tracker
closed
Crash
Always
Validation Rules
Admin
None
Summary
The ISDA 2003 Precondition falsely assumes a single contractualDefinitions element.
According to the schema, there may be more than one contractualDefinitions element. It needs to state how to evaluate this across zero to many element.
The rule today: Precondition: ISDA2003 (context: Trade) (context: Contract) The documentation/contractualDefinitions element begins with the substring ISDA2003Credit (this includes ISDA2003CreditJapan, etc.) or the documentation/masterConfirmation/masterConfirmationType element begins with the substring ISDA2003Credit or ISDA2004Credit.
I propose the rule tests for the existence of some element beginning with the string ISDA2003Credit.
The intermediate proposed change: Precondition: ISDA2003 (context: Trade) (context: Contract) Some documentation/contractualDefinitions element begins with the substring ISDA2003Credit (this includes ISDA2003CreditJapan, etc.) or the documentation/masterConfirmation/masterConfirmationType element begins with the substring ISDA2003Credit or ISDA2004Credit.
We already agreed that we shouldn't be describing the type "string" using the term for an operator: "substring". See issue #618 http://www.fpml.org/issues/view.php?id=618 Taking this secondary issue into account would give us:
The final proposed changes:
The proposed change: Precondition: ISDA2003 (context: Trade) (context: Contract) Some documentation/contractualDefinitions element begins with the String ISDA2003Credit (this includes ISDA2003CreditJapan, etc.), or the documentation/masterConfirmation/masterConfirmationType element begins with the string ISDA2003Credit or ISDA2004Credit.
The current XPath/XQuery definition is: let $iSDA2003PreCondition as xs:boolean := fn:starts-with(//documentation/contractualDefinitions, "ISDA2003Credit") or fn:matches(//documentation/masterConfirmation/masterConfirmationType, "^(ISDA2003Credit|ISDA2004Credit)")
The revised XPath/XQuery definition would be: let $iSDA2003PreCondition as xs:boolean := (some $contractualDefinitions as xs:string in //documentation/contractualDefinitions satisfies fn:starts-with($contractualDefinitions, "ISDA2003Credit")) or (fn:matches(//documentation/masterConfirmation/masterConfirmationType, "^(ISDA2003Credit|ISDA2004Credit)"))
Notes:
matthewdr
04/08/08 1:52 pm
Agreed at the VWG to authorize Marc to implement this.
mgratacos
04/21/08 2:33 pm
This has been committed to the 5.0 branch (revision 3632)
This has been committed to the trunk (revision 3633)