FpML Issues Tracker

1068: CommoditySwapadditionalCommoditySwapLeg has untyped element

September 28, 2011

closed

Minor

Always

Commodities

SteveTurner

mgratacos

Summary

Purely by chance I spotted another example of an untyped element - similar to http://www.fpml.org/issues/view.php?id=1065

In this case additionalCommoditySwapLeg should be of type Leg as an abstract base.

Although seen in 4-9 - it goes further back to at least 4-8, possibly 4-7 (not present in 4-6)

Notes:

  • mgratacos

    09/29/11 9:04 am

    Yes, an additionalCommodityForwardLeg has the same issue too. I’ll fix them by making both of them of type Leg.

  • mgratacos

    09/29/11 9:27 am

    I committed the fix, by making both of them of type Leg, to Subversion. The fix will be published in 5.2 Recommendation, 5.3 Second Working Draft, and 4.10 First Working Draft.

  • SteveTurner

    01/09/13 7:27 pm

    For additionalCommodityForwardLeg and additionalCommoditySwapLeg the change made is incorrect / insufficient. When one tries to create an instance document with validation fails with: “The ‘abstract’ attribute of element must be set to ‘false’.”

    So 2 solutions:
    1) either declare the globals as concrete:

    2) remove the globals and simply inline the declaration as above.

    I think the intent here was to allow any type of Leg to be available via use of xsi:type extension in the message. Either solution will make that possible.

    Since neither global are referenced anywhere else in the schema then I would favour (2) – since (1) generally breaks the FpML architecture style.

  • SteveTurner

    01/09/13 8:24 pm

    There is a 3rd option. Declare as a proper substitution point:



    All 3 cases would require in the message

  • mgratacos

    02/12/13 11:14 am

    Steve, but the goal here was that additionalCommoditySwapLeg should be replaced by your own leg so additionalCommoditySwapLeg must not appear in the instance document.

    The additionalCommoditySwapLeg is the head of a substitution group.

  • mgratacos

    02/15/13 10:21 am

    I uploaded a quick test (schema and example) with a type leg that substitues additionalCommodityForwardLeg. It seems to work fine.

  • SteveTurner

    02/15/13 11:40 am

    I can see how that would work with an external resource, but the problem is that the FpML schema itself is internally inconsistent as a stand-alone entity.

    We are unable to process this part of it therefore without modifying it in some way.

  • mgratacos

    02/15/13 3:19 pm

    This was fixed in version 5.3. See attached fpml-com-5-3_CommoditySwapDetails.png for new models of commodity swap legs. All legs are now part of substitution group. The additional legs are not present in the schema anymore.

    The same design approach with substitution group was applied to commodityForward.

  • Leave an update

    You must be logged in to post an update.