Вы имеете в виду использование QuickFIX? (Я вижу QuickFIX в ваших тегах)
, если это так, я не знаю. Обычно нетрудно написать простой синтаксический анализатор для сообщения FIX. Я обнаружил, что веб-инструменты действительного исправления справляются со своей задачей.
Формат FIX на удивление раздражает для синтаксического анализа (поскольку формат, отличный от XML, то есть тот, который все еще используется почти всеми, не имеет маркеров начала и конца подгруппы, вместо этого вы должны работать с ним на основе правил упорядочивания тегов, и теги, которые не входят в подгруппу, заголовок или хвост могут быть в любом порядке).
Поэтому вместо того, чтобы разбирать его самостоятельно, я бы порекомендовал вам использовать для этого существующую библиотеку.
Единственным хорошо поддерживаемым вариантом с открытым исходным кодом является библиотека Java QuickFIX / J .
Есть много коммерческих решений, например CameronFIX
Нет одного лучшего способа, но учитывая тег quickfix, который прикрепили либо вы, либо система SO, хорошим местом для начала будет обзор QuickFix движка FIX с открытым исходным кодом.
Есть много коммерческих поставщиков, если вы работаете в компании, где это имеет значение, или если вам нужна дополнительная поддержка и услуги.
Удачи
Помимо использования самого quickfixengine, легко проанализировать сообщение об исправлении, если вы знаете, что оно содержит определенные теги.
Он содержит пары строк «ключ = значение», разделенные 0x1. Одна из сложностей - это группы, потому что вам нужно выяснить, что тег является первым в группе (заголовок группы), а затем выяснить, когда группа заканчивается (когда он попадает в другой тег, не входящий в группу).
Еще одно проблемное поле - это RawData, которое может содержать что угодно, включая разделитель полей 0x1, но ему предшествует RawDataLength, поэтому вам нужно сначала прочитать это, а затем прочитать RawDataLength количество байтов после тега RawData, чтобы перейти к следующему полю.
Я считаю, что quickfixengine использует словарь тегов, где он может определить, что тег является первым в группе, а затем продолжать добавлять, пока не попадет в тег, который не входит в группу.
Когда мне нужно выполнить индивидуальный анализ сообщений FIX, я в основном точно знаю, какие сообщения и какие данные мы ожидаем, поэтому я могу настроить их для этих сообщений.