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 IMessageInfoDictionary object.
For example:
var settings = new EngineSettings
{
Dictionary = "QuickFixDictionary.xml"
};
Engine.Init(settings);
IMessageInfoDictionary quickFixDictionary = Engine.Instance.MessageInfoDictionaryManager["QuickFixDictionary"];
Session session = new ("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 reuse QuickFIX data dictionary files in the OnixS FIX Engine and, at the same time, detect and correct mistakes.