当我设置如下的year部分(20512或类似的内容)时,xsd仍然验证xml。
任何想法。
这是一个缺陷还是我必须使用给定模式的simpleType?
谢谢
XSD

<xs:attribute name="date" type="xs:date" />

<xs:attribute name="timestamp" type="xs:dateTime" />

XML
<store date="20512-07-11" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="items.xsd">

<store timestamp="20512-07-11T21:50:16" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="items.xsd">

最佳答案

这不是您的验证器中的缺陷(顺便说一下,您应该指出您正在使用哪个验证器)。其他验证器(mis)的行为与您期望的一样;例如,.net会抱怨The value '20512-07-11' is invalid according to its datatype 'http://www.w3.org/2001/XMLSchema:date' - The string '20512-07-11' is not a valid XsdDateTime value.
请参阅xsd规范的this section,第d3.3节,该节清楚地说明您的值是有效的。

09-20 23:52