Привет, у меня есть требование, похожее на следующее: есть сообщение о спецификации x9.2, например.
Формат заголовка для сообщения 97xx
Data Item Field Name Attribute
006 MSG.TYPE 4 N
001 MSG.FROM 6 CHR
015 MSG.REPLY 1 CHR
017 MSG.TRACE 6 N
002 MSG.DATE 8 N
003 MSG.TIME 4 N
004 MSG.SESSION 6 N
009 MSG.MEMBER 11 N
018 MSG.RECORD 7 N
9701 ACCESS AUTHORIZATION REQUEST
STANDARD HEADER
Data Item Field Name Attribute
133 MSG.HBAC 8 N
230 MSG.DISCLAIMED 1 CHAR
I NEED TO CONVERT THIS TO A XML USING DFDL.
Sample XML
<ROOT>
<Header>
<MSG.TYPE></MSG.TYPE>
.
.
.
.
<MSG.RECORD></MSG.RECORD>
</Header>
<Body>
<MSG.HBAC></MSG.HBAC>
<MSG.DISCLAIMED></MSG.DISCLAIMED>
</Body>
</ROOT>
Теперь проблема заключается в том, что сообщения спецификации x9.2 могут иметь разные поля для разных типов сообщений, как показано выше, например, для 9701.
Но 9702 будет иметь другой набор элементов данных. Итак, как написать синтаксический анализатор dfdl, который может анализировать все типы сообщений, будь то серия 97xx, серия 95xx или любая другая серия спецификации x9.2.