2013-02-21 63 views
2

XSD是否可以添加用于比较两个元素的约束? 说我有开始结束在DataRangeType下我想添加一个约束说Begin <= End。这是可行的吗?XSD是否可以添加用于比较两个元素的约束?

顺便说一句,我使用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> 

非常感谢。

回答

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> 
+0

我使用的是xsd 1.1,你能举个例子吗? – Gob00st 2013-02-21 16:51:21

+0

我试过断言,但是XMLSPy给了我元素在元素下是不允许的。 – Gob00st 2013-02-21 16:59:34

+0

听起来像你的软件告诉你它不支持XSD 1.1。你对此有多自信? – 2013-02-21 17:20:58