【问题标题】:How do I validate two dates in XSD如何验证 XSD 中的两个日期
【发布时间】:2013-11-15 13:25:46
【问题描述】:

我的 XSD 文件中有两个日期元素。

例如

<xs:element type="xs:date" name="DateFrom"/>
<xs:element type="xs:date" name="DateTo"/>

基本上,我想检查 DateFrom 和 DateTo 之间的天数是否不超过 7 天。

我可以在我的 C# XML 验证例程中执行此检查,但想知道我是否也可以在 Xsd 中执行此操作,如果可以,如何操作?

【问题讨论】:

    标签: c# xml validation date xsd


    【解决方案1】:

    在 XSD 1.1 中,您可以使用断言来检查这样的约束;在 XSD 1.0 中,你运气不好。

    [附录]:另一位读者要求提供一个工作示例。这是一个。

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
        elementFormDefault="qualified"> 
      <xs:element name="DateRange">
        <xs:complexType> 
          <xs:sequence>
            <xs:element name="DateFrom" type="xs:date"/>
            <xs:element name="DateTo" type="xs:date"/>
          </xs:sequence>
          <xs:assert test="DateFrom lt DateTo"/>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    

    此架构文档描述的架构接受以下文档。

    <DateRange>
      <DateFrom>2011-01-01</DateFrom>
      <DateTo>2012-01-01</DateTo>
    </DateRange>
    

    它拒绝以下文档。

    <DateRange>
      <DateFrom>2011-01-01</DateFrom>
      <DateTo>2010-01-01</DateTo>
    </DateRange>
    

    【讨论】:

      猜你喜欢
      • 2019-09-10
      • 2021-05-11
      • 2013-08-12
      • 2017-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      相关资源
      最近更新 更多