这是xml
:
<range from="100" to="200"/>
那么,如何写一个xsd
来保证属性to
总是大于from
呢?
Schema,顾名思义,只会定义文档的模式,而不是验证条件数据。你必须在你的应用程序中这样做。
在 XSD 1.1 中,您可以使用对“范围”类型的断言来施加该约束。在 XSD 1.0 中,约束是不可表达的。
这是一个示例,可查看如何在您的情况下添加 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 表达式。