[This message was posted by Jim Northey of The LaSalle Technology Group 
<[email protected]> to the "FIXML" discussion forum at 
http://fixprotocol.org/discuss/7. You can reply to it on-line at 
http://fixprotocol.org/discuss/read/07015968 - PLEASE DO NOT REPLY BY MAIL.]

It has been several years since we optimized FIXML. That work was completed in 
2004. The original premise which led to an elaborate schema design was to use 
the FIXML Schema documents as the FIX Repository (we had no repository at the 
time) AND as an extension of that permit people to define their own 
implementation in "-impl.xsd" files that could be exchanged with 
counterparties. This all was well and good - except (and thankfully for this) 
Kevin Houstoun created a separate repository that was first a database - then 
was converted to XML documents. Regarding the pattern to use the -impl files, 
there was a reliance on the xs:redefine feature of XML Schema. First issue 
there were some slight restrictions in using it so we ended up having to 
populate enumerated fields in the fields-impl file (quite ugly) and secondly to 
this day (as far as I have checked) xs:redefine is not supported by mapping 
tools, such as JAXB, JIBX, etc. So the redefine feature was replaced by 
xs:include but the -impl files remain.

So we are saddled with excess complexity in the FIXML Schema for negligible or 
no benefit.

I talked with someone from the CME who said we should really consider 
simplifying the FIXML Schema. If she chooses to identify herself on this thread 
that would be great. CME is finding the FpML schemas easier to extend and work 
with.

I could not agree more. I could probably agree more - but my being in full 
agreement is sufficient enough.

I think the main thing we could do is eliminate the redefines and the -impl 
files. That may be sufficient. What do others think?

I like having the datatypes and fields and components in separate XSD files. 
Similar to ISO 20022 - I am wondering if it makes sense to create instance 
files for each message - or should we leave the category level grouping?

In addition to simplifying the main schema, some folks who may wish to chime in 
on this post as well, have created "run time" or "instance" schemas - bare 
bones definitions with one XSD file per message using native XML datatypes 
where possible without referring to other external schema files, such as a 
datatype, field, or component file. This has some definite benefits for those 
who would like to attempt runtime schema validation (though we almost always 
talk in terms of milliseconds added to processing time per message for 
validation - so the widespread usage of this is dubious - although likely 
software performance and CPU advances can leave validation of a FIXML message 
sub 1 millisecond it adds up in this day and age).

Any other items, besides elimination of the -impl files anyone else can 
recommend.

One of the thought leaders behind FpML made a very strong case in a chat 
session recently to limit the namespace to "FIX5" and to use the attributes on 
the message for further clarification of service and extension pack. I think 
this has considerable merit considering the difficulty in having to change the 
namespace on existing messages.

Further thoughts on this are appreciated. Don't feel compelled to comment - if 
you don't have informed opinions - being a reader is a sufficient contribution.

It would be good to know what challenges and/or problems have occurred in using 
the FIXML Schema.






 

[You can unsubscribe from this discussion group by sending a message to 
mailto:[email protected]]

-- 
You received this message because you are subscribed to the Google Groups 
"Financial Information eXchange" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/fix-protocol?hl=en.

Reply via email to