The difference between a "group" and a "component" in QuickFix / J

I am new to the FIX world. I write applications that handle FIX messages in Java, and for this I use QuickFix / J. I downloaded the DataDictionary from the home page ( http://quickfixengine.org/ ). I am using version 4.4

There are groups and components in the xml file. But the component can again contain groups.

What is the exact difference between the two?

Thanks for the help!

+7
fix quickfix quickfixj
source share
2 answers

The components are not really ... things. They are similar to macros in a FIX DataDictionary. Many messages need the same set of fields, so instead of specifying the same fields in each message, DD defines a component that other messages may include.

The group, on the other hand, is very real. This is a repeating sequence of fields that will be displayed 0 or more times in a message.

The QuickFIX programming interface largely ignores components as a concept. You cannot extract a component from a message because the component is not a concept in QF; you just retrieve the fields like any other field.

Hypothetical example: The following two message definitions are exactly the same.

1: with component

<message name="Automobile" msgtype="X" msgcat="app"> <field name="Wheel" required="Y"/> <field name="Bumper" required="Y"/> <component name="Dashboard" required="Y"/> </message> <component name="Dashboard"> <field name="Radio" required="Y"/> <field name="AirConditioner" required="Y"/> <field name="Heater" required="Y"/> </component> 

2: no component

 <message name="Automobile" msgtype="X" msgcat="app"> <field name="Wheel" required="Y"/> <field name="Bumper" required="Y"/> <field name="Radio" required="Y"/> <field name="AirConditioner" required="Y"/> <field name="Heater" required="Y"/> </message> 

Cm? A component is just a macro.

In any case, this means that you are simply calling msg.GetHeater() (or something else).

+12
source share

From FIXWiki for components :

Component blocks are sets of related data fields grouped together and referenced by the name of the component block in the messages in which they are used. Sometimes they are called "groups."

Component blocks are practical to define and then reused in different types of messages. Sometimes a repeating group is intended only for one specific message, and then it is not defined as a component block.

View a component block as a reusable field definition. Such a component block may or may not contain a repeating group of fields.

For example, the Side of a component block that is used in many different types of messages (see "Used Value" on this page). It is easy to define once and used in many message definitions.

+2
source share

All Articles