У меня есть в элементе xml атрибут "период", который представляет собой список из двух дат. напр. период="2020-01-01 2020-03-31"

Есть ли способ проверить с помощью схемы xml, восходит ли этот список (первая дата меньше или равна второй дате)?

Мой код xml-схемы:

'''
<xsd:simpleType name="type-list-date">
    <xsd:list itemType="xsd:date"/>
</xsd:simpleType>

<xsd:simpleType name="type-period">
    <xsd:restriction base="type-list-date">
        <xsd:length value="2"/>
    </xsd:restriction>
</xsd:simpleType>
'''

Большое спасибо.

xsd
0
user1136003 24 Апр 2020 в 17:01

1 ответ

Я не боюсь. Простой тип схемы описывает одно атомарное значение, а тип List — это просто последовательность несвязанных экземпляров простого типа. Похоже, что ваш список состоит ровно из двух элементов, поэтому должна быть возможность написать логическое выражение XPath, которое возвращает true, если ваше ограничение удовлетворено.

Если бы я разрабатывал этот формат XML, я бы поместил две даты в отдельные атрибуты/теги с именами «startDate» и «endDate» (или аналогичные).

0
kimbert 24 Апр 2020 в 19:55