Using QuickFIX Data Dictionary
The Engine generates an identifier (id) for each given QuickFIX dictionary. This id is equal to the data dictionary file name without its extension. Therefore, the QuickFIX data dictionary becomes a session level dictionary, so its id should be used to find the Dictionary object.
For example:
var settings = new EngineSettings
{
Dictionary = "QuickFixDictionary.xml"
};
Engine.Init(settings);
var quickFixDictionary = Dictionary.Find("QuickFixDictionary");
var session = new Session("Sender", "Target", quickFixDictionary);
Note
QuickFIX data dictionary files can include duplicates of the field
node (explicitly or via the component
node) in the message
node.
This leads to the ambiguity between the required
attributes of duplicates because there is no way to detect which attribute is correct.
The wrong required
attribute can lead to errors during message validation. However, the QuickFIX Engine processes duplicated field
nodes silently, without exceptions or warnings.
To simplify the migration from the QuickFIX Engine, the OnixS FIX Engine also processes duplicates without exceptions but writes warning messages to the Engine's log.
This allows to re-use QuickFIX data dictionary files in the OnixS FIX Engine and, at the same time, detect and correct mistakes.