AllocSettlCurrAmt in FIXML 4.4

Imported from previous forum

We are using FIXML 4.4. fields to represent some x-currency trades - i.e. settlement currency is different to trade currency. We’ve identified

We’ve identified AllocSettlCurrAmt as the field to use as per the FIXML documentation. However the schema is different - it is SettlCcyAmt.

The schema seems to be inconsistent both with the documentation and other fields in the schema:

From the downloaded copy of fixml-allocation-base-4-4.xsd
<xs:attribute name=“SettlCcyAmt” type=“AllocSettlCurrAmt_t” use=“optional”/>

I would expect it to be:
<xs:attribute name=“AllocSettlCurrAmt” type=“AllocSettlCurrAmt_t” use=“optional”/>

Any suggestions?

Looking in the FIX.4.4 entry in the Unified FIX Repository, I see

     <field id="737" name="AllocSettlCurrAmt" type="Amt" textId="FIELD_737" added="FIX.4.4"
            abbrName="AllocSettlCurrAmt"
            baseCategory="Allocation"
            baseCategoryAbbrName="SettlCcyAmt"
            notReqXML="0"/>

“AllocSettlCurrAmt” is the abbreviated name, as used to name the XML attribute in the FIXML representation of FIX.

However, if the message is in the “Allocation” category (and I suspect your message is), then the even further abbreviated name of “SettlCcyAmt” is used instead.

This kind of abbreviated abbreviation thing happens quite a lot in FIXML messages.
In particular, “ID” is used as an abbreviation for quite a few things, such as “ClOrdID”, “IOIID”, “ListID”, etc…, depending on category context.

The big gotcha here is that if you look at FIXimate 3, this isn’t immediately apparent, either looking at the field, or at the AllocGrp component its in, or in the AllocationInstruction the component is int.

You are quite right to persue the goal of making the messages valid according to the FIXML schema, as AFAIK, the FIX repository is authoritative, and the FIXML schemas are generated from it.

{{{ Andy