How to send FIX Messages with FIXML Data in 4.1

Imported from previous forum

Hi. I’m writing about one question.
I’d like to send a FIX message with FIXML data.
I already know it’s possible in FIX 4.2 and 4.3 with fields named XMLDataLen and XMLData.
However I’m not sure about FIX 4.1.
Is it possible to do it using user defined fields just like XMLDataLen and XMLData?
Moreover, would you please tell me other ways how I can do it?

[ original email was from Ryan Pierce - rpierce@taltrade.com ]
> Hi. I’m writing about one question.
> I’d like to send a FIX message with FIXML data.
> I already know it’s possible in FIX 4.2 and 4.3 with fields named XMLDataLen and XMLData.
> However I’m not sure about FIX 4.1.
> Is it possible to do it using user defined fields just like XMLDataLen and XMLData?
> Moreover, would you please tell me other ways how I can do it?

While a FIXML DTD does exist for FIX 4.1 business messages, there isn’t a standard way to encapsulate FIXML in a FIX 4.1 session.

In my experience, I’ve found that when given the choice of using proprietary fields, or fields from a later FIX version in a previous FIX version, it makes more sense to use the actual field numbers from the later version. Doing so means less re-coding needed to upgrade to a later version. But doing so technically is non-compliant, so bilateral negotiation with your counterparties is needed. (The again, expecting both sides to use a proprietary field requires bilateral negotiation as well.) Note that some validating FIX engines might have problems with this practice.

Also note that XMLData is a length-encoded raw data field. User-defined raw data fields are a weakness in the spec; while applications can (and should) be written to ignore any user-defined field that doesn’t interest them, the engine must know about raw data fields because parsing them differs substantially from parsing all other field types due to the fact that such fields can contain [SOH].