FpML Issues Tracker
closed
Minor
Always
Request New Feature
Admin
mgratacos
Summary
This is a comment about how Swap products are assembled from legs inside FpML.
FpML Swaps are substitutions of the Product element. Each Swap is made up of different 'legs' or 'swap streams'. Each Swap product use a different composition it's legs: creditDefaultSwap - feeLeg and protectionTerms fxSwap - fxSingleLeg (repeating) swap - swapStream (repeating) equitySwap - equityLeg and interestLeg
** In the same way each Product is derived by extension from the Product complex type I'd like to see each Leg derived by extension from a Leg complex type. **
By deriving each Leg from a Leg complex type would allow me to assemble the more unusual swaps more easily. And for FpML extensions would allow me to define a new leg type without needing to define a new product type.
Also for type based queries I could make use of the common root type. For example find me the Legs of all types of Swap is easier if Leg is defined.
As I see it, why should the floating leg of an IRS be any different to the floating leg of a TRS?
Your help would be much appreciated.
Notes:
mgratacos
10/19/05 11:17 am
In FpML 4.2 Second Working Draft (2005-10-12) the equity swap structure has suffered important changes to better support return type swaps. These changes include:
The fpml-eqs-4-2.xsd file has been renamed fpml-return-swaps-4-2.xsd. In addition, the following changes have been implemented:
– equitySwap has been deprecated (it will be removed in the next major version) and a new returnSwap element has been created.
– the new head of the substitution group is now called returnSwapLeg (it was called returnLeg before).
– equityLeg has been deprecated (it will be removed in the next major version) and a new returnLeg element of type ReturnLeg has been created.
– ReturnLeg type has the same structure as EquityLeg but the following elements have been renamed:
— valuation is now called rateOfReturn
— equityAmount is now called amount.
— equityNotionalReset is now called notionalReset.
— equityPaymentDates is now called paymentDates
— equityValuation is now called valuationRules
— equityPaymentDatesInterim is now called paymentDatesInterim
— equityPaymentDateFinal is now called paymentDateFinal
The types of the elements listed above have been renamed as well but the old types are being kept in the schema for backward compatibility reasons.
On the other hand, the support of Inflation Swaps in this version has been done with the use of substitution groups in the floating rate level in order to differentiate floatin rate indices from inlation indices. This follows the pattern expressed suggested in this issue.
mgratacos
10/06/06 9:11 am
AWG agreed to have a modelling design paper.
Ask Coord group to have a technical review group to keep consistency.
mgratacos
03/08/07 3:29 pm
Changes have been committed to the trunk. All swap legs extend Leg (except FxLeg).