我收到此错误
字符串'01 / 06/2015'不是有效的AllXsd值
我的XSD是:
<xs:element name="PassingDate">
<xs:simpleType>
<xs:restriction base="xs:date">
<xs:pattern value="\d{2}[/]\d{2}[/]\d{4}"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
我正在将我的XML读入DataSet
,然后我必须在PassingDate
的基础上执行排序。
如果我现在将PassingDate
转换为dataType日期,那么将仅基于字符串进行排序。这将导致错误的输出。
如何在dd/MM/yyyy
格式化日期?
答案 0 :(得分:2)
您的PassingDate
声明并未重新排列日期的组成部分 - 它只会进一步限制原始位置的组件。
您可以切换到纯正则表达式约束以获得结束:
<xs:element name="PassingDate">
<xs:simpleType name="date">
<xs:restriction base="xs:token">
<xs:pattern value="[0-3][0-9]/[0-1][0-9]/[0-9]{4}" />
</xs:restriction>
</xs:simpleType>
</xs:element>
备注:强>
YYYY-MM-DD
更适合国际交流。YYYY-MM-DD
更适合互操作性YYYY-MM-DD
更适合排序。 推荐:对您的XML使用标准type="xs:date"
,并仅对数据输入/显示的日期格式进行本地化。如果您坚持使用非标准日期格式的XML,请调查前/后处理或编写自定义代码。您可以从here获得一些想法。