XSD可以添加约束来比较两个元素吗?

时间:2013-02-21 16:22:06

标签: xsd xsd-1.1

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>

非常感谢。

1 个答案:

答案 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 &lt;= End"/>
</xs:complexType>