Вопрос

Can XSD add a constraint for comparing two elements ? Say I have Begin End under DataRangeType I want to add a constraint saying Begin <= End. Is this doable ?

BTW I am using 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>

Thanks a lot.

Это было полезно?

Решение

It's doable in XSD 1.1 by means of assertions. I do not believe the constraint is expressible in XSD 1.0.

[Addendum] You ask for an example. Here you are.

<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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top