0
XSDでは、基本SaleTypeから拡張されたReturnTypeがあります。私は要素がxmlに現れる順序は気にしません。基本タイプからの拡張で要素出現順序を無視する
私はXSDを変更できますが、XMLの書き方を変更することはできません。何らかの理由でxmlが書き込まれる方法は、XSDで定義されている順序どおりの順序ではありません。私は注文をベースタイプではなく拡張で作ることができます。これをどうやって解決するのですか?
<xs:complexType name="SaleType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded"> <!--adding this ignores the order for Sale but does not enforce it to the extensions-->
<xs:element name="ItemID" type="xs:string" />
xs:element name="Description" type="xs:string" minOccurs="0"/>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReturnType">
<xs:complexContent>
<xs:extension base="SaleType">
<xs:sequence>
<xs:element name="Reason" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!--Even though Description appears before ItemID, this xml validates since Reason is at the end-->
<Return>
<Description>Item 123</Description>
<ItemID>123</ItemID>
<Reason>R1</Reason>
</Return>
<!--This xml does not validate since Reason is at the beginning-->
<Return>
<Reason></Reason>
<Description>Item 123</Description>
<ItemID>123</ItemID>
</Return>