埋め込まれた XSD に対してユーザー入力 XML ファイルを検証する C# アプリのメソッドがあります。問題なく動作しますが、すべての子要素が XSD で定義された正確な順序である必要があります。私にとっては、要素が存在する限り、順序は重要ではありません。
たとえば、次の XSD があるとします...
<xs:element maxOccurs="unbounded" name="ParentElement">
<xs:complexType>
<xs:sequence>
<xs:element name="FirstChildElement" type="xs:string" />
<xs:element name="SecondChildElement" type="xs:string" />
<xs:element name="ThirdChildElement" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
そして、このようなXML...
<ParentElement>
<FirstChildElement>someValue</FirstChildElement>
<ThirdChildElement>someValue</ThirdChildElement>
<SecondChildElement>someValue</SecondChildElement>
</ParentElement>
検証した場合、子要素が順不同であるため、エラーが発生します。
XSD に変更を加えて、検証が要素が存在するかどうかのみを考慮し、それらが正しい親の下にあることを確認できますが、それらの順序は気にしませんか?