XML Schema强制执行有效的数组索引?

时间:2015-07-14 14:41:19

标签: xml xsd xsd-validation

我有一个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>

0 个答案:

没有答案