FpML Issues Tracker
closed
Minor
Always
Interest Rate Derivatives
cottona
h_mcallister
Summary
The fpml IRD xsd defines a complex type called IdentifiedPayerReceiver in file fpml-shared-5-3.xsd. This type has a single attribute called id of type xsd:ID which should indicate which counterparty of the trade is the payer or receiver. Using type xsd:ID is defining a new reference to be used somewhere else in the XML document when really what is needed here is a use of an existing reference that has been defined somewhere else. In all other cases where a reference to a counterparty is required the type is xsd:IDREF and I think that should be the case here as well.
Notes:
h_mcallister
05/30/12 11:52 am
This issue report is based on a misreading of the purpose of the id attribute under IdentifiedPayerReceiver.
IdentifiedPayerReceiver serves as the type of the optional “buyer” and “seller” elements within Strike and StrikeSchedule. IdentifiedPayerReceiver extends PayerReceiverEnum with the addition of an id attribute – the values of PayerReceiverEnum are “Payer” and “Receiver”.
The use of the enumeration ensures that the buyer & seller of the strike rate are defined exclusively in terms of the payer & receiver parties to the containing InterestRateStream, and not any other party to the trade (e.g. a broker).
Then the *value* of the buyer|seller element indicates “which counterparty of the trade is the payer or receiver”, and the purpose of the id attribute is to serve as the *target* of a reference from some other component of the trade.
Note: the Strike[_Schedule] buyer & seller elements have carried an id attribute since FpML 2.0 (the transition to the formal “Identified-” type occurred at FpML 4-1). This must have seemed a good idea at some point, but as far as I aware the id’s remain un-used.
mgratacos
06/15/12 11:01 am
This is not an issue. The IdentifiedPayerReceiver adds an optional id to the PayerReceiverEnum enumeration value (with values Payer and Receiver). I don’t think the id attribute is ever used as a reference but the purpose is not to create an IDREF pointing to the party structure somewhere.