Difference between “group” and “component” in QuickFix/J

。_饼干妹妹 提交于 2019-12-21 09:03:32

问题


I am new in the FIX world. I am writing an application processing FIX messages in Java and for that I am using QuickFix/J. I have downloaded the DataDictionary from the homepage (http://quickfixengine.org/). I am using the version 4.4

In the xml-file exists groups and components. But a component can contain groups again.

What's the exact differnce between them?

Thanks for your help!!


回答1:


Components aren't really... things. They're like macros in the FIX DataDictionary. Many messages need the same set of fields, so instead of specifying the same fields in every message, the DD defines a component that other messages can include.

A Group, on the other hand, is a very real thing. It's a repeating sequence of fields that will appear 0 or more times in a message.

QuickFIX's programming interface largely ignores components as a concept. You can't extract a component from a message because a component isn't a concept in QF; you just extract the fields like any other field.

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

1: With a 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: Without a 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>

See? A component is pretty much just a macro.

Either way it's defined, you just end up calling msg.GetHeater() (or whatever).




回答2:


From the FIXWiki for Components:

Component blocks are sets of related data fields grouped together and are referenced by the component block name in messages that they are used in. Sometimes they are referred to as "Groups".

Component blocks are practical to be defined, and then reused in different message types. Sometimes a repeating group is just for one particular message and then it is not defined as a Component block.

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

For instance take the Parties component block which is used in many different messages types (see "Used In" on that page). Easy to define once and use in many definitions of messages.



来源:https://stackoverflow.com/questions/29772481/difference-between-group-and-component-in-quickfix-j

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!