17

埋め込まれた 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 に変更を加えて、検証が要素が存在するかどうかのみを考慮し、それらが正しい親の下にあることを確認できますが、それらの順序は気にしませんか?

4

1 に答える 1

28

シーケンスとは、要素が特定の順序で表示される必要があることを意味します。おそらく xs:all が必要です。http://www.w3schools.com/xml/schema_complex_indicators.aspをご覧ください。

于 2012-07-23T21:35:52.737 に答える