如何使用 XML 模式验证 DD MM YYYY 日期?

How to validate DD MM YYYY date with XML Schema?

我正在尝试使用 type="xsd:date"

验证日期格式 23 December 2012 具有 XML 架构的日期格式

Cvc-datatype-valid.1.2.1: '23 December 2012' Is Not A Valid Value For 'date'.. Line '12', Column '53'.

元素示例:

<dateReleased>23 December 1966</dateReleased>

架构示例:

<xsd:element name="dateReleased" type="xsd:date" />

是否可以使用 type 属性 (xs:date)?或者,我需要改用 xs:pattern 吗?

您不能在 XSD 中重新定义 xs:date 接受的格式。

您可以使用 xs:pattern 正则表达式约束来接近,但是您将无法捕获完整的日期语义(月份的日期范围、闰年等)。

如果您可以控制日期格式,请使用 XSD 支持的标准格式。如果不这样做,请考虑通过 XSLT 转换 XML,它在验证之前更灵活地定义日期格式。