<?xml version="1.0" encoding="utf-8"?>
<!--  RSS generated by Flaimo.com RSS Builder [2010-09-06 21:50:42]  --> <rss version="2.0" xmlns:im="http://purl.org/rss/1.0/item-images/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" >
<channel>
<docs>http://fpml.org/issues/</docs>
<description>FpML - Financial products Markup Language - ISSUES</description>
<link>http://fpml.org/issues/</link>
<title>FpML - Financial products Markup Language - ISSUES</title>
<image>
<title>FpML - Financial products Markup Language - ISSUES</title>
<url>http://fpml.org/issues/images/mantis_logo_button.gif</url>
<link>http://fpml.org/issues/</link>
<description>FpML - Financial products Markup Language - ISSUES</description>
</image>
<category>All Projects</category>
<ttl>10</ttl>
<sy:updatePeriod>hourly</sy:updatePeriod>
<sy:updateFrequency>1</sy:updateFrequency>
<sy:updateBase>2010-09-06T21:50:42+00:00</sy:updateBase>
<item>
<title>0000984: Unused isFloating and hasInitialStub in IRD rules</title>
<link>http://fpml.org/issues/view.php?id=984</link>
<description>The IRD rules define two conditions: isFloating and hasInitialStub, but they are not used in the rules themselves.&lt;br /&gt;
&lt;br /&gt;
I am looking at FpML 4.6.4 LCWD-1.&lt;br /&gt;
&lt;br /&gt;
For example, I suggest to change rule ird-59 from:&lt;br /&gt;
&lt;br /&gt;
XPath Description:&lt;br /&gt;
Context: InterestRateStream (complex type)&lt;br /&gt;
[exists(resetDates)]&lt;br /&gt;
id(resetDates/calculationPeriodDatesReference/@href) is calculationPeriodDates&lt;br /&gt;
&lt;br /&gt;
to:&lt;br /&gt;
&lt;br /&gt;
XPath Description:&lt;br /&gt;
Context: InterestRateStream (complex type)&lt;br /&gt;
[isFloating]&lt;br /&gt;
id(resetDates/calculationPeriodDatesReference/@href) is calculationPeriodDates&lt;br /&gt;
&lt;br /&gt;
All rules should be looked at to see if similar changes are necessary.</description>
<guid>http://fpml.org/issues/view.php?id=984</guid>
<author>danieldui &lt;danieldui@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=984#bugnotes</comments>
</item>
<item>
<title>0001017: shared-27 should it be kept? modified?</title>
<link>http://fpml.org/issues/view.php?id=1017</link>
<description>shared-27 currently reads as follows:&lt;br /&gt;
&lt;br /&gt;
Context: Document (complex type)&lt;br /&gt;
All timezones must be the same. +00:00, -00:00, and Z are considered equivalent.&lt;br /&gt;
&lt;br /&gt;
Comment: This rule ensures that date and datetime comparisons behave as expected because they're expressed in the same timezone. NB That the XSD specification uses the term &quot;timezone&quot;, but that they are not really timezones as they are fixed durations to represent time offsets. Subsequent to publishing XSD the W3C changed its position to clarify this: http://www.w3.org/TR/2005/NOTE-timezone-20051013/#d2e226.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Andrew J noted that imposing all the dates in an instance document to use the same timezone may be too restrictive.&lt;br /&gt;
&lt;br /&gt;
Should this rule be be changed to allow the use of multiple timezones in the same document?</description>
<guid>http://fpml.org/issues/view.php?id=1017</guid>
<author>danieldui &lt;danieldui@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=1017#bugnotes</comments>
</item>
<item>
<title>0001018: Should dates indicate the timezone when also businessCenter is present?</title>
<link>http://fpml.org/issues/view.php?id=1018</link>
<description>When Andrew J raised the related issue about time zones, Tony Coates noted that perhaps the timezone should not be indicated in a date when also businessCenter is present.</description>
<guid>http://fpml.org/issues/view.php?id=1018</guid>
<author>danieldui &lt;danieldui@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=1018#bugnotes</comments>
</item>
<item>
<title>0000942: CD Conditions</title>
<link>http://fpml.org/issues/view.php?id=942</link>
<description>The Credit Derivatives &quot;Conditions&quot; are derived values added to new Nodes (elements and attributes) defined by the condition.&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&quot;&lt;br /&gt;
Condition: ISDA1999Credit&lt;br /&gt;
(context: Trade) (context: Contract) At least one of documentation/contractualDefinition element and documentation/masterConfirmation/masterConfirmationType element exists and contains the string &quot;ISDA1999Credit&quot;.&lt;br /&gt;
&lt;br /&gt;
Formal description: some $document in (//element(*, Trade) | //element(*, Contract))/documentation/(contractualDefinitions | masterConfirmation/masterConfirmationType) satisfies contains($document, &quot;ISDA1999Credit&quot;)&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
This defines a new Node named &quot;ISDA1999Credit&quot; on every Trade and Contract type. It provides a derivation rule, which is included in the description.&lt;br /&gt;
&lt;br /&gt;
We added a lot of clarity by adding the contexts to these definitions. Making this change was a very good thing.&lt;br /&gt;
&lt;br /&gt;
There is a problem with the first two sentences: &quot;The Validation Conditions only apply when specific rules reference them. The following conditions are always to be executed relative to the root of the FpML document being validated.&quot;&lt;br /&gt;
&lt;br /&gt;
#1 The first issue is the second sentence contradicts the Context given in the definition of the Condition. I suggest it be corrected or struck out.&lt;br /&gt;
&lt;br /&gt;
#2 The second issue is the first sentence is a nonsense as it seems to be trying to control the application of rules. When we validate with the validation rules, all the rules apply each time. It is the contexts which determine which rules 'fire', nothing else. I suggest this is struck out.&lt;br /&gt;
&lt;br /&gt;
#3 The third issue is how do we refer to these conditions in the rules referencing them? So far we have used $ISDA1999Credit to refer to the first condition, as if it was an XPath variable. The problem with this approach is that it only works if each condition appears once. As each condition appears once per Context, and the context appears many times then we need a way to distinguish between all the different $ISDA1999Credit. I suggest that for each Conditions context we define a name, a datatype and treat it as a derived element or attribute on the context. That way when I have a Valuation with hundreds of trades the rules still work. At the moment the rules break when there is more than one trade in a message.&lt;br /&gt;
&lt;br /&gt;
&quot;&lt;br /&gt;
Name: isda1999Credit&lt;br /&gt;
Node: element&lt;br /&gt;
&lt;br /&gt;
English Description:&lt;br /&gt;
Context: Trade (complex type), Contract (complex type)&lt;br /&gt;
Derivation rule: At least one of documentation/contractualDefinition element and documentation/masterConfirmation/masterConfirmationType element exists and contains the string &quot;ISDA1999Credit&quot;.&lt;br /&gt;
&lt;br /&gt;
XPath description: &lt;br /&gt;
Context: //element(*, Trade), //element(*, Contract)&lt;br /&gt;
Derivation rule: some $document in documentation/(contractualDefinitions | masterConfirmation/masterConfirmationType) satisfies contains($document, &quot;ISDA1999Credit&quot;) &lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://fpml.org/issues/view.php?id=4&quot;&gt;0000004&lt;/a&gt; They are currently named conditions. I suggest they are named &quot;Definitions&quot; and placed in the rules-functions.xml file, as they are not defined to be specific to CDS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In summary, these conditions need to be changed so they work when there is more than one Trade or Contract in a message.</description>
<guid>http://fpml.org/issues/view.php?id=942</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=942#bugnotes</comments>
</item>
<item>
<title>0000999: commodity-reference-price-1-0.xml et al Code values are strings - not codes</title>
<link>http://fpml.org/issues/view.php?id=999</link>
<description>The values used in commodity-reference-price-1-0.xml for Codes use a string and not a code value: e.g. &quot;COCOA-GBP-EURONEXT LIFFE&quot; and &quot;BENZENE-CONTRACT BENZENE (FOB USGC/GAL)-GALLON-B&amp;D&quot;&lt;br /&gt;
&lt;br /&gt;
Ditto:&lt;br /&gt;
floating-rate-index-2-1.xml: &quot;CAD-ISDA-Swap Rate&quot;&lt;br /&gt;
commodity-business-calendar-2-2.xml: &quot;BM&amp;F&quot; &lt;br /&gt;
- possibly others.&lt;br /&gt;
&lt;br /&gt;
Is there a technical justification for departure from a Code? I can see our internal infrastructure needing major surgery to cater for this. &lt;br /&gt;
&lt;br /&gt;
Is there a characterset definition for code values? We had assumed Codes were limited to a-z, A-Z,0-9,-&lt;br /&gt;
&lt;br /&gt;
--Steve</description>
<guid>http://fpml.org/issues/view.php?id=999</guid>
<author>SteveTurner &lt;SteveTurner@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=999#bugnotes</comments>
</item>
<item>
<title>0000979: invalid examples for new shared rules</title>
<link>http://fpml.org/issues/view.php?id=979</link>
<description>Please add at least one invalid example for the new shared rules:&lt;br /&gt;
&lt;br /&gt;
shared-18&lt;br /&gt;
shared-19&lt;br /&gt;
shared-20&lt;br /&gt;
shared-21&lt;br /&gt;
shared-22&lt;br /&gt;
shared-23&lt;br /&gt;
shared-24&lt;br /&gt;
shared-25&lt;br /&gt;
shared-26&lt;br /&gt;
shared-27&lt;br /&gt;
shared-27&lt;br /&gt;
&lt;br /&gt;
Currently these rules have no examples.</description>
<guid>http://fpml.org/issues/view.php?id=979</guid>
<author>matthew &lt;matthew@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=979#bugnotes</comments>
</item>
<item>
<title>0001016: basketAmount</title>
<link>http://fpml.org/issues/view.php?id=1016</link>
<description>FpML supports Basket Amount, yet we can't find this in the ISDA 2002 Equity Master Definitions, nor in the ISDA Confirmations templates.&lt;br /&gt;
&lt;br /&gt;
We have never seen this in ISDA documentation or otherwise, we weight on basket percentage ( relative weight ) or open units ( absolute weight ), both of which are stable expression.&lt;br /&gt;
&lt;br /&gt;
We propose the Basket Amount to be deprecated and removed in the next major version.</description>
<guid>http://fpml.org/issues/view.php?id=1016</guid>
<author>mgratacos &lt;mgratacos@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=1016#bugnotes</comments>
</item>
<item>
<title>0001015: Update of rules affected by equity option multiple exercise document</title>
<link>http://fpml.org/issues/view.php?id=1015</link>
<description>The rules concerning equity option multiple exercise need to be updated according to the content of the document that the EQD WG has produced.&lt;br /&gt;
&lt;br /&gt;
TODO:&lt;br /&gt;
- Identify rules&lt;br /&gt;
- Propose updated version&lt;br /&gt;
- Review internally and with EQD WG</description>
<guid>http://fpml.org/issues/view.php?id=1015</guid>
<author>danieldui &lt;danieldui@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=1015#bugnotes</comments>
</item>
<item>
<title>0001013: 5.0 Reporting View Validation Rules</title>
<link>http://fpml.org/issues/view.php?id=1013</link>
<description>The following validation rules were removed from Confirmation View and will be added to the Reporting View once the validation rules for Reporting View are created:&lt;br /&gt;
- ref-14, ref-15, ref-16, ref-17 – in reconciliation &lt;br /&gt;
- ref-18 – in mktenv&lt;br /&gt;
- ref- 19, ref-22, ref-23, ref-24, ref-36 - in valuation and riskdef&lt;br /&gt;
- ref- 20, ref-21 - in riskdef&lt;br /&gt;
- ref- 31 - in mktenv and riskdef&lt;br /&gt;
- ref- 37- in valuation, mktenv and riskdef</description>
<guid>http://fpml.org/issues/view.php?id=1013</guid>
<author>iyermakova &lt;iyermakova@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=1013#bugnotes</comments>
</item>
<item>
<title>0001012: The 5-x Confirmation View Validation rules ref-10, ref-30, ref-32 need new invalid test-cases</title>
<link>http://fpml.org/issues/view.php?id=1012</link>
<description>The 5-x Confirmation View Validation rules ref-10, ref-30, ref-32 need new invalid test cases:&lt;br /&gt;
the existing invalid cases have the following issues:&lt;br /&gt;
- invalid-ref-10-01 (currently used in requestValuationReport message)&lt;br /&gt;
- invalid-ref-30-01 (currently used in valuationDocument message)&lt;br /&gt;
- invalid-ref-32-01 (currently used in fx product )</description>
<guid>http://fpml.org/issues/view.php?id=1012</guid>
<author>iyermakova &lt;iyermakova@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=1012#bugnotes</comments>
</item>
<item>
<title>0000933: rules documentation files invalid against the XSD</title>
<link>http://fpml.org/issues/view.php?id=933</link>
<description>The rules documentation files are invalid against the XSD.&lt;br /&gt;
&lt;br /&gt;
rules-english-ref.xml contains:&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?&gt;&lt;br /&gt;
&lt;?xml-stylesheet type=&quot;text/xsl&quot; href=&quot;XSL/rule_grouped.xsl&quot;?&gt;&lt;br /&gt;
&lt;!DOCTYPE version [&lt;br /&gt;
	&lt;!-- version definitions (in XML entities) --&gt;&lt;br /&gt;
	&lt;!ENTITY % fpml.version.entities SYSTEM &quot;../fpml-version-entities.ent&quot;&gt;&lt;br /&gt;
	%fpml.version.entities;&lt;br /&gt;
]&gt;&lt;br /&gt;
&lt;!--&lt;br /&gt;
  Author: Simon Heinrich, IONA Technologies. for ISDA&lt;br /&gt;
--&gt;&lt;br /&gt;
&lt;rules status=&quot;Released&quot; testCaseBase=&quot;testcases/&quot; name=&quot;Rules for ID / IDREF References &quot; shortname=&quot;REF rules&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;rules.xsd&quot;&gt;&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
The attribute /rules/@name is not in the XML Schema. There are many other nodes node in the XML Schema.&lt;br /&gt;
&lt;br /&gt;
	&lt;xs:element name=&quot;rules&quot;&gt;&lt;br /&gt;
		&lt;xs:complexType&gt;&lt;br /&gt;
			&lt;xs:sequence&gt;&lt;br /&gt;
				&lt;xs:element ref=&quot;definitions&quot; minOccurs=&quot;0&quot;/&gt;&lt;br /&gt;
				&lt;xs:element ref=&quot;group&quot; maxOccurs=&quot;unbounded&quot;/&gt;&lt;br /&gt;
			&lt;/xs:sequence&gt;&lt;br /&gt;
			&lt;xs:attribute name=&quot;testCaseBase&quot; type=&quot;xs:string&quot; use=&quot;optional&quot;/&gt;&lt;br /&gt;
			&lt;xs:attribute name=&quot;status&quot; use=&quot;required&quot;&gt;&lt;br /&gt;
				&lt;xs:simpleType&gt;&lt;br /&gt;
					&lt;xs:restriction base=&quot;xs:string&quot;&gt;&lt;br /&gt;
						&lt;xs:enumeration value=&quot;Released&quot;/&gt;&lt;br /&gt;
						&lt;xs:enumeration value=&quot;WorkInProgress&quot;/&gt;&lt;br /&gt;
					&lt;/xs:restriction&gt;&lt;br /&gt;
				&lt;/xs:simpleType&gt;&lt;br /&gt;
			&lt;/xs:attribute&gt;&lt;br /&gt;
		&lt;/xs:complexType&gt;&lt;br /&gt;
	&lt;/xs:element&gt;&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
Please make the rules documentation valid against the XSD.</description>
<guid>http://fpml.org/issues/view.php?id=933</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=933#bugnotes</comments>
</item>
<item>
<title>0001008: Element appears to have the wrong type</title>
<link>http://fpml.org/issues/view.php?id=1008</link>
<description>In the complex type 'FormulaTerm' the element 'partialDerivativeReference' is of type 'PricingParameterDerivativeReference' whilst in the type 'WeightedPartialDerivative' the same element name has type 'PricingStructureReference'.&lt;br /&gt;
&lt;br /&gt;
Either the type is wrong or the element is misnamed in the second case.&lt;br /&gt;
&lt;br /&gt;
Have not checked previous version to see how long this inconsistency has existed.</description>
<guid>http://fpml.org/issues/view.php?id=1008</guid>
<author>andrew &lt;andrew@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=1008#bugnotes</comments>
</item>
<item>
<title>0000549: FXLeg is not a kind of product</title>
<link>http://fpml.org/issues/view.php?id=549</link>
<description>The FpML schema states that FxLeg is a kind of Product.&lt;br /&gt;
&lt;br /&gt;
	&lt;xsd:complexType name=&quot;FxLeg&quot;&gt;&lt;br /&gt;
		&lt;xsd:annotation&gt;&lt;br /&gt;
			&lt;xsd:documentation xml:lang=&quot;en&quot;&gt;A type that represents a single exchange of one currency for another. This is used for representing FX spot, forward, and swap transactions.&lt;/xsd:documentation&gt;&lt;br /&gt;
		&lt;/xsd:annotation&gt;&lt;br /&gt;
		&lt;xsd:complexContent&gt;&lt;br /&gt;
			&lt;xsd:extension base=&quot;Product&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
This is not correct. A FxSwap is a kind of Product. An FxSwap has two or more Legs.&lt;br /&gt;
&lt;br /&gt;
Why is this modelled this way? If it is a bug, please fix it.</description>
<guid>http://fpml.org/issues/view.php?id=549</guid>
<author>matthew &lt;matthew@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=549#bugnotes</comments>
</item>
<item>
<title>0000531: Refactor FX option products into a single product</title>
<link>http://fpml.org/issues/view.php?id=531</link>
<description>Modeling change recommendation: Refactor FX option products into a single product with a variety of features, based on the new generic option model.</description>
<guid>http://fpml.org/issues/view.php?id=531</guid>
<author>iyermakova &lt;iyermakova@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=531#bugnotes</comments>
</item>
<item>
<title>0000611: Validation rules don't apply to all views!</title>
<link>http://fpml.org/issues/view.php?id=611</link>
<description>Not all validation rules apply to all views. They should be split up.</description>
<guid>http://fpml.org/issues/view.php?id=611</guid>
<author>mgratacos &lt;mgratacos@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=611#bugnotes</comments>
</item>
<item>
<title>0000927: ird-14 needs to handle relative dates</title>
<link>http://fpml.org/issues/view.php?id=927</link>
<description>ird-14 handles effectiveDate but not relativeEffectiveDate&lt;br /&gt;
&lt;br /&gt;
The rule today is:&lt;br /&gt;
&quot;&lt;br /&gt;
Context: CalculationPeriodDates (complex type)&lt;br /&gt;
terminationDate/unadjustedDate gt effectiveDate/unadjustedDate&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
We can either put a guard on the context to limit the rule to effectiveDate, or we can also evaluate the relativeEffectiveDates&lt;br /&gt;
&lt;br /&gt;
With a guard:&lt;br /&gt;
&quot;&lt;br /&gt;
Context: CalculationPeriodDates (complex type)[exists(effectiveDate)]&lt;br /&gt;
terminationDate/unadjustedDate gt effectiveDate/unadjustedDate&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
Handling just the relativeEffectiveDate would be:&lt;br /&gt;
&quot;&lt;br /&gt;
Context: CalculationPeriodDates (complex type)[exists(relativeEffectiveDate)][not(exists(relativeEffectiveDate/dayType))]&lt;br /&gt;
terminationDate/unadjustedDate gt (id(relativeEffectiveDate/dateRelativeTo/@href) + interivalDuration(relativeEffectiveDate/periodMultiplier, relativeEffectiveDate/period))&lt;br /&gt;
&quot;&lt;br /&gt;
The guard [not(exists(relativeEffectiveDate/dayType))] is necessary because we cannot do dayType calculations. We should check with Harry the rule applies before dayType calculations, not afterwards as I am unsure of this.&lt;br /&gt;
&lt;br /&gt;
The two cases (relativeEffectiveDate and effectiveDate), could be combined into one rule.&lt;br /&gt;
&lt;br /&gt;
-----Original Message-----&lt;br /&gt;
From: valwg@fpml.org [mailto:valwg@fpml.org] On Behalf Of Christian Nentwich&lt;br /&gt;
Sent: 21 April 2009 10:06&lt;br /&gt;
To: valwg@fpml.org&lt;br /&gt;
Subject: Re: FpML-VAL cd-26 unhandled case&lt;br /&gt;
&lt;br /&gt;
Matthew,&lt;br /&gt;
&lt;br /&gt;
if the rules need to be complete with respect to optionality, you'll &lt;br /&gt;
find quite a few others where this is not the case - because they were &lt;br /&gt;
not originally written with that in mind.&lt;br /&gt;
&lt;br /&gt;
For example ird-14:&lt;br /&gt;
&lt;br /&gt;
terminationDate/unadjustedDate gt effectiveDate/unadjustedDate&lt;br /&gt;
&lt;br /&gt;
A swap might have a relativeEffectiveDate instead of effectiveDate... &lt;br /&gt;
Anybody got a fine tooth comb handy?&lt;br /&gt;
&lt;br /&gt;
Christian</description>
<guid>http://fpml.org/issues/view.php?id=927</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=927#bugnotes</comments>
</item>
<item>
<title>0000922: ln-21 freely or bound interpretation</title>
<link>http://fpml.org/issues/view.php?id=922</link>
<description>There are many clauses in ln-21 should they be used freely or bound? Should the clauses be split into separate rules?&lt;br /&gt;
&lt;br /&gt;
-----Original Message-----&lt;br /&gt;
From: valwg@fpml.org [mailto:valwg@fpml.org] On Behalf Of Christian Nentwich&lt;br /&gt;
Sent: 24 March 2009 15:39&lt;br /&gt;
To: valwg@fpml.org; Andrew P Parry&lt;br /&gt;
Subject: FpML-VAL More feedback on validation rules&lt;br /&gt;
&lt;br /&gt;
All,&lt;br /&gt;
&lt;br /&gt;
I am posting this here again because this group will be much more aware &lt;br /&gt;
of what has previously been flagged as an issue. Either way, I hope you &lt;br /&gt;
find it useful as an additional check-point:&lt;br /&gt;
...&lt;br /&gt;
...&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
Rule ln-21 (and potentially others, but only spotted it here): The XPath &lt;br /&gt;
description makes statements like &lt;br /&gt;
&quot;exists(interestAccrualSchedule/interestRatePeriod/interestDayBasis)&quot; &lt;br /&gt;
whereas the English states &lt;br /&gt;
&quot;interestAccrualSchedule/interestRatePeriod/interestDayBasis must &lt;br /&gt;
exist&quot;. Interpreting the rule freely, it is likely that the English &lt;br /&gt;
version means &quot;an interestDayBasis must exist in EVERY rate period&quot; - &lt;br /&gt;
but that is not what the XPath expresses.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
MDR response (abbreviated) -&lt;br /&gt;
&lt;br /&gt;
There were many problems with Loans. In the end we agreed to suspend work on Loans Validation until the schema settled. I can see the problem you have identified. When you use the term &quot;freely&quot;, I presume you mean that in the mathematical sense of an unbound variable rather than the vernacular sense of willy-nilly? Whether I interpret the rule bound or freely it still makes no business sense to me. Why would all these clauses be combined into ln-21 if we were to interpret them freely? The clauses should be split up to provide the maximally free expression under a single valid context.</description>
<guid>http://fpml.org/issues/view.php?id=922</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=922#bugnotes</comments>
</item>
<item>
<title>0000849: The term regular Period as a function</title>
<link>http://fpml.org/issues/view.php?id=849</link>
<description>The term &quot;regularPeriod&quot; can be written out as a function as per the Validation Architecture.&lt;br /&gt;
&lt;br /&gt;
The reason why the function is so much better is that the context of all the item is no longer ambiguous - it becomes explicit.&lt;br /&gt;
&lt;br /&gt;
The XQuery equivalent is included for comparison only. The proposal does not advocate XQuery, it is included for information only.&lt;br /&gt;
&quot;&lt;br /&gt;
declare function fun:regularPeriod($cpd as element(*, CalculationPeriodDates)) as element(period)&lt;br /&gt;
(: The regular period of a set of calculation period dates is the period between a start date and an end date. If firstRegularPeriodStartDate exists, then the start date is firstRegularPeriodStartDate, else the start date is effectiveDate/unadjustedDate. If lastRegularPeriodEndDate exists, then the end date is lastRegularPeriodEndDate, else the end date is terminationDate/unadjustedDate. :)&lt;br /&gt;
{ &lt;br /&gt;
	validate strict {&lt;br /&gt;
		element period {&lt;br /&gt;
			element startDate {&lt;br /&gt;
				if (exists($cpd/firstRegularPeriodStartDate))&lt;br /&gt;
					then data($cpd/firstRegularPeriodStartDate)&lt;br /&gt;
				else&lt;br /&gt;
					data($cpd/effectiveDate/unadjustedDate)&lt;br /&gt;
			},&lt;br /&gt;
			element endDate {&lt;br /&gt;
				if (exists($cpd/lastRegularPeriodEndDate))&lt;br /&gt;
					then data($cpd/lastRegularPeriodEndDate)&lt;br /&gt;
				else&lt;br /&gt;
					data($cpd/terminationDate/unadjustedDate)&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
};&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Writing the function out as per the FpML Validation Specification gives:&lt;br /&gt;
&quot;&lt;br /&gt;
Function Name = regularPeriod&lt;br /&gt;
Description = The regular period of a set of calculation period dates is the period between a start date and an end date. If firstRegularPeriodStartDate exists, then the start date is firstRegularPeriodStartDate, else the start date is effectiveDate/unadjustedDate. If lastRegularPeriodEndDate exists, then the end date is lastRegularPeriodEndDate, else the end date is terminationDate/unadjustedDate.&lt;br /&gt;
Parameter 1 = $cpd as element(*, CalculationPeriodDates) (min=1, max=1)&lt;br /&gt;
Result Type = element(period)&lt;br /&gt;
Test = startDate has the value of (if exists($cpd/firstRegularPeriodStartDate) then $cpd/firstRegularPeriodStartDate else $cpd/effectiveDate/unadjustedDate). endDate has the value of (if (exists($cpd/lastRegularPeriodEndDate)) then data($cpd/lastRegularPeriodEndDate) else data($cpd/terminationDate/unadjustedDate))&lt;br /&gt;
&quot;</description>
<guid>http://fpml.org/issues/view.php?id=849</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=849#bugnotes</comments>
</item>
<item>
<title>0000842: ird-36 date arithmetic in days and weeks only</title>
<link>http://fpml.org/issues/view.php?id=842</link>
<description>The problem with ird-36 is that it is currently undefined in how to do calculations that mix days and weeks.&lt;br /&gt;
&lt;br /&gt;
The rule today is:&lt;br /&gt;
&quot;&lt;br /&gt;
ird-36 (Mandatory)&lt;br /&gt;
Context: PaymentDates (complex type)&lt;br /&gt;
[exists(firstPaymentDate)] [exists(lastRegularPaymentDate)]&lt;br /&gt;
The period defined by the dates firstPaymentDate and lastRegularPaymentDate must be an integer multiple of paymentFrequency. &lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
The problem is that one date minus another gives a duration in days. We need a specified convention to deal with all the types of payment frequencies that work against the schedule&lt;br /&gt;
&lt;br /&gt;
Given two dates, and the duration between them we need to know how to compare that duration in days for payment frequences:&lt;br /&gt;
* days&lt;br /&gt;
* weeks&lt;br /&gt;
* months&lt;br /&gt;
* years&lt;br /&gt;
&lt;br /&gt;
For example, given the dates 1/1/2007 and 31/1/2008 how do I compare this to:&lt;br /&gt;
* 365 days&lt;br /&gt;
* 52 weeks&lt;br /&gt;
* 12 months&lt;br /&gt;
* 1 year</description>
<guid>http://fpml.org/issues/view.php?id=842</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=842#bugnotes</comments>
</item>
<item>
<title>0000841: defining &quot;the schedule implied by&quot;</title>
<link>http://fpml.org/issues/view.php?id=841</link>
<description>The definition of &quot;the schedule implied by&quot; is itself not precise, nor complete.&lt;br /&gt;
&lt;br /&gt;
The definition today is: &lt;br /&gt;
&quot;&lt;br /&gt;
Term: the schedule implied by&lt;br /&gt;
The schedule defined by the effective- and termination-Date, together with the &quot;RegularPeriod&quot; dates which may appear optionally in the presence of stubs, and the calculation period frequency.&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
1. The first change is that this must be rewritten as function so the context is clear. For example in valid-ird-54-01.xml there are two 'effectiveDate' elements.&lt;br /&gt;
2. &quot;effective-&quot; should be replaced by the XPath &quot;//effectiveDate&quot;.&lt;br /&gt;
3. &quot;termination-Date&quot; should be replaced by the XPath &quot;//terminationDate&quot;.&lt;br /&gt;
4. The XPath for &quot;RegularPeriod&quot; must be given.&lt;br /&gt;
5. The XPath for the &quot;stubs&quot; must be given.&lt;br /&gt;
6. The XPath for the &quot;calculation period frequency&quot; must be given.&lt;br /&gt;
7. The effectiveDate has element only content, so it must be made clear whether it is the adjusted or unadjusted date that is used.&lt;br /&gt;
8. Same again but for terminationDate.</description>
<guid>http://fpml.org/issues/view.php?id=841</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=841#bugnotes</comments>
</item>
<item>
<title>0000815: fx-12 needs defining completely</title>
<link>http://fpml.org/issues/view.php?id=815</link>
<description>The current fx-12 leaves a large amount to interpretation:&lt;br /&gt;
&lt;br /&gt;
&quot;&lt;br /&gt;
fx-12 (Mandatory)&lt;br /&gt;
Context: FxAverageRateOption (complex type)&lt;br /&gt;
[exists(averageRateObservationSchedule)]&lt;br /&gt;
The values of observedRates/observationDate should match the calculated schedule dates derived from parameters defined within the averageRateObservationSchedule element and the business day calendar implied by fixingTime/businessCenter.&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
The rule must define: &quot;match&quot;, &quot;calculated schedule date&quot;, the derivation process in &quot;derived&quot;, and the calculation in &quot;implied&quot;.&lt;br /&gt;
&lt;br /&gt;
At the moment it is more of a comment than a rule.</description>
<guid>http://fpml.org/issues/view.php?id=815</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=815#bugnotes</comments>
</item>
<item>
<title>0000814: invalid-fx-10-01 does not exercise the rule</title>
<link>http://fpml.org/issues/view.php?id=814</link>
<description>The invalid sample invalid-fx-10-01.xml does not exercise rule fx-10 because the guard on the rule only applying to periods in days rules out this sample.&lt;br /&gt;
&lt;br /&gt;
The guard is added in issue &lt;a href=&quot;http://fpml.org/issues/view.php?id=813&quot;&gt;0000813&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;averageRateObservationSchedule&gt;&lt;br /&gt;
	&lt;observationStartDate&gt;2001-11-01&lt;/observationStartDate&gt;&lt;br /&gt;
	&lt;observationEndDate&gt;2001-11-30&lt;/observationEndDate&gt;&lt;br /&gt;
	&lt;calculationPeriodFrequency&gt;&lt;br /&gt;
		&lt;periodMultiplier&gt;4&lt;/periodMultiplier&gt;&lt;br /&gt;
		&lt;!-- AJ Changed period --&gt;&lt;br /&gt;
		&lt;period&gt;M&lt;/period&gt;&lt;br /&gt;
		&lt;rollConvention&gt;NONE&lt;/rollConvention&gt;&lt;br /&gt;
	&lt;/calculationPeriodFrequency&gt;&lt;br /&gt;
&lt;/averageRateObservationSchedule&gt;&lt;br /&gt;
&lt;br /&gt;
The sample needs to be changed to exercise the rule.&lt;br /&gt;
&lt;br /&gt;
The same problem also occurs with invalid-fx-10-02.xml</description>
<guid>http://fpml.org/issues/view.php?id=814</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=814#bugnotes</comments>
</item>
<item>
<title>0000813: fx-10 only works on Day Periods.</title>
<link>http://fpml.org/issues/view.php?id=813</link>
<description>fx-10 is currently defined as:&lt;br /&gt;
&lt;br /&gt;
&quot;&lt;br /&gt;
fx-10 (Mandatory)&lt;br /&gt;
Context: FxAverageRateObservationSchedule (complex type)&lt;br /&gt;
The observation period defined by observationStartDate and observationEndDate should be an integer multiple of the calculationPeriodFrequency. &lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
This calculation only makes sense where /FpML/trade/fxAverageRateOption/averageRateObservationSchedule/calculationPeriodFrequency/period is a day. It does not make sense to divide days by months, years, or anything else.&lt;br /&gt;
&lt;br /&gt;
The additional guard required is given below:&lt;br /&gt;
&quot;&lt;br /&gt;
fx-10 (Mandatory)&lt;br /&gt;
Context: FxAverageRateObservationSchedule (complex type)[calculationPeriodFrequency/period = fpml:PeriodEnum('D')]&lt;br /&gt;
The observation period defined by observationStartDate and observationEndDate should be an integer multiple of the calculationPeriodFrequency. &lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
The function fpml:PeriodEnum is the XPath function to construct an FpML PeriodEnum. The fpml namespace is needed because the Validation Rules set the default function namespace to be XPath 2, and this is in FpML not XPath2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There is a second issue that the text used doesn't define the terms such as: &quot;observation period&quot; and &quot;integer multiple&quot;. Rewriting the text using the FpML Specification for writing rules gives, including the FpML mathemtical notation gives:&lt;br /&gt;
&lt;br /&gt;
&quot;&lt;br /&gt;
fx-10 (Mandatory)&lt;br /&gt;
Context: FxAverageRateObservationSchedule (complex type)[calculationPeriodFrequency/period = fpml:PeriodEnum('D')]&lt;br /&gt;
((observationStartDate - observationEndDate) div xs:dayTimeDuration (concat('P', calculationPeriodFrequency/periodMultiplier, 'D'))) mod 1 eq 0&lt;br /&gt;
Comment: The duration between start and end of the periods must be an exact multiple of the period duration.&lt;br /&gt;
&quot;</description>
<guid>http://fpml.org/issues/view.php?id=813</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=813#bugnotes</comments>
</item>
<item>
<title>0000737: ln-6 the term period is undefined</title>
<link>http://fpml.org/issues/view.php?id=737</link>
<description>In ln-6 the term period is undefined.&lt;br /&gt;
&lt;br /&gt;
The term is not defined as an element nor a function, so it remains undefined and ambiguous. There is no element of that name in context.&lt;br /&gt;
&lt;br /&gt;
The rule today is:&lt;br /&gt;
&quot;&lt;br /&gt;
Context: InterestAccrualSchedule (complex type)&lt;br /&gt;
ln-6 (Mandatory)&lt;br /&gt;
interestRatePeriod/startDate,lenderLoanContractPeriod/startDate, interestAccrualPeriod/startDate must be equal in each period. &lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
There are many interpretations of this which look plausible. This will need to go back to the Loans WG to advise on the rule.</description>
<guid>http://fpml.org/issues/view.php?id=737</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=737#bugnotes</comments>
</item>
<item>
<title>0000664: cd-33 incorrectly assumes a fixed number of days in a month</title>
<link>http://fpml.org/issues/view.php?id=664</link>
<description>cd-33 today is:&lt;br /&gt;
&quot;&lt;br /&gt;
Context: PeriodicPayment (complex type)&lt;br /&gt;
cd-33 (Mandatory)&lt;br /&gt;
If both firstPaymentDate and lastRegularPaymentDate are present, then lastRegularPaymentDate must fall precisely on a date reachable by adding an integer multiple of the period in paymentFrequency to firstPaymentDate.&lt;br /&gt;
&quot;&lt;br /&gt;
&lt;br /&gt;
Section 4.6.2 of the manual states:&lt;br /&gt;
&lt;br /&gt;
&quot;http://www.fpml.org/spec/fpml-4-4-4-wd-3/html/fpml-4-4-intro.html#s4.6.2&lt;br /&gt;
The evaluation of dates in the validation rules is not trivial. The optionality of including time offsets in date datatypes makes comparisons between dates more difficult since sometimes the result is indeterminate as any ISO8601 date is +/- 18 hours of timezone, and +/- 24 hours of day.&lt;br /&gt;
&lt;br /&gt;
The Validation Working Group recommends the use of the XPath 2.0 date/time comparison rules which defines a definitive true / false value even for indeterminate calculations.&lt;br /&gt;
&lt;br /&gt;
The Validation Working Group recommends that time offsets appear on all date/time values used in FpML documents.&quot;&lt;br /&gt;
&lt;br /&gt;
Rule cd-33 contradicts those statements. Subtracting one xs:date from another xs:date will result in an xs:dayTimeDuration. Determining the difference in months between two dates is undefined because people may not agree on the answer.&lt;br /&gt;
&lt;br /&gt;
For example, if the Period was &quot;P3M&quot; of type xs:duration of xs:yearMonthDuration it could not participate in arithmetic with an xs:dayTimeDuration, because the operands to the arithmetic operators would be of incompatible types.&lt;br /&gt;
&lt;br /&gt;
This is a spin-off of issue &lt;a href=&quot;http://fpml.org/issues/view.php?id=636&quot;&gt;0000636&lt;/a&gt;</description>
<guid>http://fpml.org/issues/view.php?id=664</guid>
<author>matthewdr &lt;matthewdr@example.com&gt;</author>
<comments>http://fpml.org/issues/view.php?id=664#bugnotes</comments>
</item>
</channel>
</rss>
