Data Format Description Language (DFDL) v 1.0の現在の実装では、順序付けられていないリストはサポートされていません。回避策はありますか?
2 に答える
1
IBM の実装は、DFDL 1.0 仕様に従って dfdl:sequenceKind="unordered" をサポートするようになりました。
于 2015-10-09T15:13:32.260 に答える
0
はい、回避策があります。簡単な例として、入力テキストが単純な一連の文字 (a、b、および c) であり、任意の順序で表示されるとします。順序なしリストを作成するには、文字ごとに要素を作成します。コンテナーに無制限の最大出現数があり、子要素がすべて選択肢になるように、それらを含む要素に入れます。
概念的には、次のようになります。
Container Element
Choice
A Element
B Element
C Element
ディスクリミネーターを使用して、各文字の存在をテストします。
DFDL スキーマは次のようになります (一部)
<xsd:element name="Container" dfdl:occursCountKind="implicit"
dfdl:terminator="" maxOccurs="unbounded" minOccurs="1" >
<xsd:complexType>
<xsd:choice>
<xsd:element name="a" dfdl:length="1" dfdl:lengthKind="explicit"
fixed="a" minOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{. eq 'a'}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="b" dfdl:length="1" dfdl:lengthKind="explicit"
fixed="b" minOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{. eq 'b'}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="c" dfdl:length="1" dfdl:lengthKind="explicit"
fixed="c" minOccurs="1" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{. eq 'c'}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
:
于 2013-03-06T15:38:17.953 に答える