Схема XML: сравнение с современными элементами - PullRequest
5 голосов
/ 21 июля 2010

У меня есть XML-файл, подобный следующему:

<?xml version="1.0" encoding="UTF-8"?>
<items>
    <item id="1">
        <valid_from>2010-07-09</valid_from>
        <valid_to>2010-07-12</valid_to>
    </item>
    <item id="2">
        <valid_from>2010-07-09</valid_from>
        <valid_to>2009-07-12</valid_to>
    </item>
</items>

Можно ли определить схему XML, в которой говорится, что элемент valid_from должен быть старше элемента valid_to?

1 Ответ

5 голосов
/ 21 июля 2010

Вы можете использовать <xs:assert> (или, альтернативно, <xs:report>), чтобы сделать это:

<xs:complexType name="ItemType">
  <xs:sequence>
    <xs:element name="valid_from" type="xs:date" />
    <xs:element name="valid_to" type="xs:date" />
  </xs:sequence>
  <xs:assert test="valid_from lt valid_to" />
</xs:complexType>

Но для этого требуется схема XML 1.1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...