0

我在我的 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>
4

1 回答 1

2

这在 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 中实现。

于 2013-11-01T12:08:10.597 回答