Datetime XSD 1.1断言比较日期

Datetime XSD 1.1断言比较日期,datetime,timezone,xpath-2.0,xsd-1.1,Datetime,Timezone,Xpath 2.0,Xsd 1.1,我在XSD1.1中编写了许多断言来比较日期对,但它们都不起作用 示例: 输入 XSD 1.1断言: <xs:assert id="plausibility-issuance-date-plausibility" test="@issuance-date &lt; ./@content-date"/> 及 读了dateTime和timezone表示法之后,我有点不知所措 谁能告诉我: 错误在哪里(我希望我想要比较的东西是清楚的) 有没有一套简单的

我在XSD1.1中编写了许多断言来比较日期对,但它们都不起作用

示例:

输入


XSD 1.1断言:

<xs:assert id="plausibility-issuance-date-plausibility"
        test="@issuance-date &lt; ./@content-date"/>


读了dateTime和timezone表示法之后,我有点不知所措

谁能告诉我:

  • 错误在哪里(我希望我想要比较的东西是清楚的)
  • 有没有一套简单的例子可以让你更容易理解
    • 您的xs:assert XPATH不正确,因为它假定
      发行日期
      内容日期
      是同一元素的属性,但它们不是

      您可以在这个示例XPATH中使用断言来表示“没有
      发布日期
      大于或等于其父
      内容日期
      ”的记录:


      示例XSD:

      <xs:element name="Records">
          <xs:complexType>
              <xs:sequence>
                  <xs:element name="Record" maxOccurs="unbounded">
                      <xs:complexType>
                          <xs:attribute name="issuance-date" type="xs:dateTime"/>
                          <xs:attribute name="last-update-date" type="xs:dateTime"/>
                          <xs:attribute name="last-renewal-date" type="xs:dateTime"/>
                      </xs:complexType>
                  </xs:element>
              </xs:sequence>
              <xs:attribute name="content-date" type="xs:dateTime"/>
              <xs:assert id="plausibility-issuance-date-plausibility" test="empty(Record[@issuance-date ge ../@content-date])"/>
          </xs:complexType>
      </xs:element>
      
      
      
      谢谢,在选择答案之前,我会确认这一点-但是时区比较如何?你知道这里出了什么问题吗?时区比较测试似乎出了类似的问题,所以解决方案应该是类似的。我认为
      empty(Record[timezone from dateTime(@issuement date)!=timezone from dateTime(../@content date)]
      应该可以工作,但我现在无法测试它
      <xs:assert id="plausibility-file-and-record-timezones"
              test="timezone-from-dateTime(Record/@issuance-date) = timezone-from-dateTime(REcords@content-date)"/>
      
      empty(Record[@issuance-date ge ../@content-date])
      
      <xs:element name="Records">
          <xs:complexType>
              <xs:sequence>
                  <xs:element name="Record" maxOccurs="unbounded">
                      <xs:complexType>
                          <xs:attribute name="issuance-date" type="xs:dateTime"/>
                          <xs:attribute name="last-update-date" type="xs:dateTime"/>
                          <xs:attribute name="last-renewal-date" type="xs:dateTime"/>
                      </xs:complexType>
                  </xs:element>
              </xs:sequence>
              <xs:attribute name="content-date" type="xs:dateTime"/>
              <xs:assert id="plausibility-issuance-date-plausibility" test="empty(Record[@issuance-date ge ../@content-date])"/>
          </xs:complexType>
      </xs:element>