ドキュメント X をドキュメント Y にマッピングする必要がありますが、どちらも非常に似ています。X には、次の [フラグメント] XSD があります。
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="3" maxOccurs="unbounded">
<xsd:element maxOccurs="unbounded" ref="A" />
<xsd:element maxOccurs="unbounded" ref="B" />
<xsd:element maxOccurs="unbounded" ref="C" />
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="D"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
Y には同じ要素 (A、B、C) がありますが、それらはシーケンス内にありません。
次の入力でマップをテストすると、問題が発生します。
<doc-X>
<A>...</A>
<B>...</B>
<C>...</C>
<D>...</D>
<C>...</C>
<D>...</D>
</doc-X>
私はこのようなものを得る:
<doc-Y>
<A>...</A>
<B>...</B>
<C>...</C>
<C>...</C>
<D>...</D>
<D>...</D>
</doc-Y>
各要素を他のスキーマの対応するペアにマップするだけなので、なぜこれが起こっているのかわかりません。
編集: PreserveSequenceOrderプロパティを「はい」に設定しようとしましたが、うまくいきませんでした