XSD 1.1 比较 2 个日期

XSD 1.1 compare 2 dates

相关:

这是我的 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.

我的猜测是您将 "empty" 拼错为 "emtpy"。要么,要么是一个非常奇怪的错误信息。

(但是将 empty() 函数应用于 "gt" 比较的结果似乎也有点......我们可以说古怪吗?)