我有一个具有以下元素的XSD
<element name="fromDate" type="date" maxOccurs="1" minOccurs="1" />
我有一个具有以下元素的XML
<fromDate>20100-11-22</fromDate>
如果我根据上面的XSD验证该XML,它不会出现错误,并将20100-11-22作为有效日期。为什么会发生这种情况?如何强迫它检查YYYY而不是把YYYYY也当作有效?
更新
在进一步阅读后,发现根据W3C规范,日期时间的词汇表示允许“四个或更多数字,可选负号数字,代表年份”1。
发布于 2018-06-14 02:14:32
您可以使用xs:pattern将年份数字限制为4,如果您不关心10,000个年份中类似Y2K的问题:
<xs:simpleType name="ShortSightedDate">
<xs:restriction base="xs:date">
<xs:pattern value="\d{4}-\d{2}-\d{2}"/>
</xs:restriction>
</xs:simpleType>https://stackoverflow.com/questions/50846902
复制相似问题