我有一个XML文件,我在其中模拟类似于数组的东西,数组名称为Application,每个元素都是ApplicationString,每个元素都包含一个“index”属性:
<con:Config>
<con:Application con:index="0">
<con:ApplicationString>GC1</con:ApplicationString>
</con:Application>
<con:Application con:index="1">
<con:ApplicationString>GC2</con:ApplicationString>
</con:Application>
<con:Application con:index="2">
<con:ApplicationString>GC3</con:ApplicationString>
</con:Application>
<con:Application con:index="3">
<con:ApplicationString>GC5</con:ApplicationString>
</con:Application>
</con:Config>
我希望编写一个XML模式,该模式将验证我的“索引”属性确实是0-N范围内的有效索引,并且不包含重复项或缺少索引。有没有任何已知的方法来强制执行此操作?这是我到目前为止的架构。
<xs:element name="Config">
<xs:complexType>
<xs:sequence>
<xs:element ref="Application" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:attribute name="index" type="xs:nonNegativeInteger">
</xs:attribute>
<xs:element name="Application">
<xs:complexType>
<xs:sequence>
<xs:element ref="ApplicationString" maxOccurs="1"/>
</xs:sequence>
<xs:attribute ref="index" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ApplicationString" type="xs:string">
</xs:element>