Разница между "группой" и "компонентом" в QuickFix/J

Я новичок в мире FIX. Я пишу приложение, обрабатывающее сообщения об исправлениях на Java, и для этого я использую QuickFix / J. я загрузил DataDictionary с домашней страницы (http://quickfixengine.org/). Я использую версию 4.4

в xml-файле существуют группы и компоненты. Но компонент может снова содержать группы.

какова точная разница между ними?

Спасибо за вашу помощь!!

2 ответов


компоненты на самом деле нет... вещи. Они похожи на макросы в FIX DataDictionary. Для многих сообщений требуется один и тот же набор полей, поэтому вместо указания одних и тех же полей в каждом сообщении DD определяет компонент, который могут включать другие сообщения.

группа, с другой стороны, очень реальная вещь. Это повторяющаяся последовательность полей, которая будет отображаться 0 или более раз в сообщении.

интерфейс программирования QuickFIX в основном игнорирует компоненты как концепцию. Вы не можете извлечь компонент из сообщения, потому что компонент не является концепцией в QF; вы просто извлекаете поля, как и любое другое поле.

гипотетический пример: следующие два определения сообщений точно такие же.

1: с компонентом

<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: Без компонента

<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>

посмотреть? Компонент очень просто макрос.

В любом случае это определено, вы просто в конечном итоге вызываете msg.GetHeater() (или все.)


с FIXWiki для компонентов:

блоки компонентов-это наборы связанных полей данных, сгруппированных вместе и ссылающихся на имя блока компонентов в сообщениях, в которых они используются. Иногда их называют "группами".

блоки компонентов практичны для определения, а затем повторно используются в разных типах сообщений. Иногда повторяющаяся группа предназначена только для одного конкретного сообщения, а затем не определяется как Блок компонентов.

просмотр блока компонентов как многоразового определения полей. Такой компонентный блок может содержать или не содержать повторяющуюся группу полей.

взять блок компонентов сторон который используется во многих различных типах сообщений (см. "Используется в" на этой странице). Легко определить один раз и использовать во многих определениях сообщений.