我的XSD如何要求属性值是连续的?

时间:2013-11-01 10:43:01

标签: xml xsd

我的XSD中定义了一个元素“inspection”,它有一个“int”类型的属性“step”。我想要做的是要求第一个“输入”具有step = 1,下一个具有step = 2,依此类推。这在XSD中是否可行?

XML架构提取:

<element name="inspection">
    <complexType>
        <!-- some elements -->
        <!-- other attributes -->
        <attribute name="step" type="int">
            <simpleType>
                <restriction>
                    <minInclusive value="1" />
                </restriction>
            </simpleType>
        </attribute>
    </complexType>
</element>

1 个答案:

答案 0 :(得分:1)

可以在XSD 1.1中使用,但不能在XSD 1.0中使用。

在XSD 1.1中,您可以将约束写为

<xs:assert test="every $i in 1 to count(input) 
                 satisfies input[$i]/@step = $i"/>

此约束将出现在输入元素的父元素上。

XSD 1.1目前在Xerces和Saxon中实施。