I'm writing a FIXEngine using Quickfix/N to receive ExecutionReport of our trading activity. Our counterparty doesn't provide us with any FIXML specification. That means that I only have a pdf document with a list of fields (without even their type).
So I have to create by hand the FIX.xml dictionary following the document.
I wanted to know if:
It is normal that the counterparty doesn't provide any FIXML or at least a XSD to be sure to comply with their specification of the protocol?
Also, it happen that the list of fields used by the couterpaty is a subset of the entire list of fields specified by the standard. In this case, should I only define the used fields and messages in the XML or should I always use the standard FIX4X.xml and simply add the used fields (keeping what is not used by the counterparty but defined in the standard), keeping also the unused messages?
Thanks a lot for your help
I've never seen a counterparty supply any FIXML or XSD - we always start with the FIX4X.xml, and tweak to match the counterparty's spec which is usually a PDF.
I've always left in the optional fields if they don't affect my processing, but I can see value in, for example, eliminating bond-related fields on a connection that's certified for equities only so that if bonds start flowing down, you get a reject and know something's wrong.