A brief guide to working with FIXML, plus the advantages, disadvantages and considerations of FIX and FIXML.
Working with FIXML: A Technical Guide
FIXML is a technical standard for FIX Protocol application-level messages that use the XML format.
As a semantic equivalent to the plain text (tag=value) FIX format, both FIXML and the tag=value FIX formats share the same data dictionary and business rules; the only difference is the representation.
FIXML does not define the session layer and FIXML messages can be encapsulated within the FIX Session Protocol using the XML Message <n> message, or within other messaging protocols.
Advantages and Disadvantages
The usage of FIX and FIXML each present advantages and disadvantages.
Looking at the benefits of FIX tag=value; it is efficient/compact, parsing is faster, and it includes the session-level protocol definition.
On the downside, messages are not easily human-readable and working with FIX messages requires specialised FIX Engine software implementations – not that this is necessarily a downside if you select the right FIX Engine SDK - but you do need one.
In contrast, looking at the benefits of FIXML; XML instance documents are easily interoperable using different widely available XML development, integration, and parsing tooling. FIXML messages are also more human-readable than FIX tag=value messages.
On the downside, however, the messages are larger due to self-describing XML message bloat and require more bandwidth. Parsing is also slower than FIX tag=value, and it requires external message protocol session/transport level implementations.
Ideal Contexts for FIXML
FIXML is commonly used on contexts that are not latency critical or bandwidth optimised such as in post-trade clearing, settlement, and reporting contexts. In these contexts, it is desirable to have an open data presentation of the message payloads that can be used with a wide range of tooling to integrate into other transaction processing systems.