XSD可以添加约束来比较两个元素吗?
假设我在DataRangeType下有Begin End我想添加一个约Begin <= End
的约束。这可行吗?
BTW我正在使用XMLSpy 2013。
<xs:complexType name="DataRangeType">
<xs:sequence>
<xs:element name="Begin" type="xs:date"/>
<xs:element name="End" type="xs:date"/>
</xs:sequence>
</xs:complexType>
非常感谢。
答案 0 :(得分:3)
通过断言可以在XSD 1.1中实现。我不相信这个约束在XSD 1.0中是可以表达的。
[附录]你想要一个例子。你来了。
<xs:complexType name="DataRangeType">
<xs:sequence>
<xs:element name="Begin" type="xs:date"/>
<xs:element name="End" type="xs:date"/>
</xs:sequence>
<xs:assert test="Begin <= End"/>
</xs:complexType>