1

xml内の子要素の順序を確認しようとしています。

私のxmlは

<main>
<col name="name1">test1</col>
<col name="name2">test2</col>
<col name="name3">test3</col>
<col name="name4">test4</col>
<col name="num1">true</col>
</main>

子要素が正しい順序で表示されているかどうかを確認する必要があります。私のファイルの子要素はすべて同じ名前ですが、属性が異なります。

<xs:element minOccurs="0" maxOccurs="unbounded" name="col">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type ="OrderCheck" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>

理想的にはやりたい

<xs:complexType name="OrderCheck">
    <xs:sequence>
    <xs:element name="name1" type="xs:string"/>
    <xs:element name="name2" type="xs:string"/>
    <xs:element name="name3" type="xs:string"/>
    <xs:element name="name4" type="xs:string"/>
    <xs:element name="num1" type="xs:boolean"/>
    </xs:sequence>  
    </xs:complexType>

xs:sequenceを使用できるようにするには、xs:complexTypeを定義する必要がありますが、「属性」タイプでcomplexTypeを定義することはできません。単純なタイプしか定義できません。ただし、xs:sequenceを使用することはできません。 simpleType。どうすればこれを修正できますか?

4

2 に答える 2

1

残念ながら、あなたがやりたいことは XSD 1.0 では不可能です。を使用sequenceすると、さまざまなタイプの必要な順序を指定できますが、同じタイプで異なるデータを指定することはできません。

これにはSchematronを使用できると思います。

于 2013-01-09T08:24:10.360 に答える