在xml架构中是否有任何方法让属性始终大于xml元素中的另一个属性?

时间:2013-04-03 16:43:15

标签: xml xsd

以下是xml

<range from="100" to="200"/>

那么,如何编写xsd以确保属性to始终大于from

3 个答案:

答案 0 :(得分:1)

Schema,根据定义,它只是定义文档的模式,而不是验证条件数据。你必须在你的申请中这样做。

答案 1 :(得分:1)

在XSD 1.1中,您可以使用'range'类型的断言来强加该约束。在XSD 1.0中,约束不可表达。

答案 2 :(得分:1)

以下是一个示例,了解如何在您的案例中添加XSD 1.1断言:

<xs:complexType>
    <xs:attribute name="to" type="xs:integer"/>
    <xs:attribute name="from" type="xs:integer"/>
    <xs:assert test="@to > @from"/>
</xs:complexType>

在“assert”元素的“test”属性中,您可以引入XPath 2.0表达式。