字符串 '01/06/2015' 不是有效的 AllXsd 值
The string '01/06/2015' is not a valid AllXsd value
我遇到这个错误
The string '01/06/2015' is not a valid AllXsd value
我的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
转换成数据类型日期,那么排序将只根据字符串进行。这将导致错误的输出。
如何格式化 dd/MM/yyyy
中的日期?
您的 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>
备注:
- 此方法不能完全防止天数过多的无效日期
对于给定的月份,leap/non-leap 年等
YYYY-MM-DD
更利于国际交流
YYYY-MM-DD
互操作性更好
YYYY-MM-DD
更适合排序。
建议:为您的 XML 使用标准 type="xs:date"
并仅本地化数据 entry/display 的日期格式。如果您受困于使用非标准日期格式的 XML,请调查 pre/post-processing 或编写自定义代码。您可能会从 here.
中得到一些想法
我遇到这个错误
The string '01/06/2015' is not a valid AllXsd value
我的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
转换成数据类型日期,那么排序将只根据字符串进行。这将导致错误的输出。
如何格式化 dd/MM/yyyy
中的日期?
您的 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>
备注:
- 此方法不能完全防止天数过多的无效日期 对于给定的月份,leap/non-leap 年等
YYYY-MM-DD
更利于国际交流YYYY-MM-DD
互操作性更好YYYY-MM-DD
更适合排序。
建议:为您的 XML 使用标准 type="xs:date"
并仅本地化数据 entry/display 的日期格式。如果您受困于使用非标准日期格式的 XML,请调查 pre/post-processing 或编写自定义代码。您可能会从 here.