XSD 1.1 сравнить 2 даты

Связано: XSD 1.1 сравнить 2 даты

Вот мой фрагмент схемы XML:

<xs:complexType name="headerType">

    <xs:sequence>

      <xs:element name="ContentDate" type="dateTime" />

      <xs:element minOccurs="0" name="DeltaStart" type="lei:LEIDateTimeProfile" />

    </xs:sequence>

    <xs:assert test="empty(dateTime(./DeltaStart) gt dateTime(./ContentDate))" />

  </xs:complexType>

  <xs:element name="header" type="headerType" />

Есть идеи, почему следующий фрагмент XML вызывает ошибку проверки?

    <header>

        <ContentDate>2017-02-01T12:00:00Z</ContentDate>

        <DeltaStart>2017-02-01T12:00:00Z</DeltaStart>

    </header>

Вот сообщение об ошибке:

Assertion evaluation ('emtpy(dateTime(./DeltaStart) gt dateTime(./ContentDate))') for element 'LEIHeader' on schema type 'LEIHeaderType' did not succeed.
XPST0017 - Function does not exist: emtpy arity: 1.

person Michael    schedule 02.06.2017    source источник


Ответы (1)


Я предполагаю, что вы неправильно написали «пустой» как «пустой». Либо так, либо это очень странное сообщение об ошибке.

(Но применение функции empty() к результату сравнения "gt" также кажется немного... скажем так, причудливым?)

person Michael Kay    schedule 02.06.2017
comment
Спасибо, мистер Кей. Я бы удалил вопрос, но этот ответ блокирует его. - person Michael; 07.06.2017
comment
Зачем удалять вопрос? Просто примите ответ и двигайтесь дальше. Когда-нибудь кто-то другой сделает то же самое, и Google найдет им ответ... - person Michael Kay; 07.06.2017