853: Some ird rules use contains() rather than exists()

Some of the ird rules use the function “contains()” rather than “exists()”. In each case the usage shows that what is meant is exists() and not contains(). As per the FpML Validation Architecture, where a term is not defined we use the XPath2 definition. Changing the contains() to exists() would bring the ird into line … Continued

852: ird-15 depends on an optional element

The constraint ird-15 depends on an optional element existing. When the element does not exist there is no result from the constraint. The rule today: ” ird-15 (Mandatory) Context: CalculationPeriodDates (complex type) [isParametric] terminationDate/unadjustedDate > firstPeriodStartDate/unadjustedDate. ” The element //element(*, CalculationPeriodDates)/firstPeriodStartDate is optional.

851: ird-16 requires optional element to be present

There is a problem with ird-16. The rules requires an optional element to be present. The rule today is: ” ird-16 (Mandatory) Context: CalculationPeriodDates (complex type) [isParametric] terminationDate/unadjustedDate > firstRegularPeriodStartDate. ” The problem is that //element(*, CalculationPeriodDates)/firstPeriodStartDate is optional.

850: ird-23 referenced element doesn’t exist

An element referenced in ird-23 do not exist in the FpML schema. The rule today is: ” ird-23 (Mandatory) Context: StubCalculationPeriodAmount (complex type) iff(exist initialStub, calculationPeriodDates element referenced by calculationPeriodDates/@href contains at least one of: * firstPeriodStartDate * firstRegularPeriodStartDate ). ” The element that does not exist in FpML is: //element(*, StubCalculationPeriodAmount)/calculationPeriodDates

849: The term regular Period as a function

The term “regularPeriod” can be written out as a function as per the Validation Architecture. The reason why the function is so much better is that the context of all the item is no longer ambiguous – it becomes explicit. The XQuery equivalent is included for comparison only. The proposal does not advocate XQuery, it … Continued

847: ird-10 needs clarification

ird-10 contains some ambiguity that requires clarification. The rule today is: ” ird-10 (Mandatory) Context: CalculationPeriodDates (complex type) [isParametric] [calculationPeriodFrequency/rollConvention is a number] If firstRegularPeriodStartDate exists, then the start date is firstRegularPeriodStartDate, else the start date is effectiveDate/unadjustedDate. If calculationPeriodFrequency/rollConvention is less than or equal to the last day of the month in the start … Continued

846: test case numbering based at 1

The numbering for the test cases sometimes starts at 01, and sometimes starts at 00. For example invalid-ird-14-00.xml. Please make the numbering consistent so they all start at 00 or 01.

844: ird-31 uses the term “contains” differently to its definition

ird-31 uses the term “contains” differently to its definition. The rule should be changed to use terms as defined. The rule today: ” ird-31 (Mandatory) Context: CalculationPeriod (complex type) Must contain unadjustedEndDate and/or adjustedEndDate. ” The proposal: ” ird-31 (Mandatory) Context: CalculationPeriod (complex type) unadjustedEndDate exists or adjustedEndDate exists. “