在xml模式中,有没有办法让xml元素中的一个属性始终大于另一个属性?
以下是在xml模式中,有没有办法让xml元素中的一个属性始终大于另一个属性?,xml,xsd,Xml,Xsd,以下是xml: <range from="100" to="200"/> 因此,如何编写xsd,以确保属性to始终大于from?模式,根据定义,将只定义文档的模式,而不是验证条件数据。您必须在应用程序中这样做。根据定义,Schema只定义文档的Schema,而不是验证条件数据。您必须在应用程序中这样做。在XSD 1.1中,您可以使用对“range”类型的断言来施加该约束。在XSD1.0中,约束是不可表达的 在XSD 1.1中,可以对“range”类型使用断言来施加该约束。在XS
xml
:
<range from="100" to="200"/>
因此,如何编写
xsd
,以确保属性to
始终大于from
?模式,根据定义,将只定义文档的模式,而不是验证条件数据。您必须在应用程序中这样做。根据定义,Schema只定义文档的Schema,而不是验证条件数据。您必须在应用程序中这样做。在XSD 1.1中,您可以使用对“range”类型的断言来施加该约束。在XSD1.0中,约束是不可表达的 在XSD 1.1中,可以对“range”类型使用断言来施加该约束。在XSD1.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表达式。下面是一个示例,以了解如何在您的案例中添加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表达式