gpt4 book ai didi

c# - 字符串 '01/06/2015' 不是有效的 AllXsd 值

转载 作者:数据小太阳 更新时间:2023-10-29 02:34:05 24 4
gpt4 key购买 nike

我收到这个错误

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>

注意事项:

  1. 此方法不能完全防止天数过多的无效日期对于给定的月份、闰年/平年等。
  2. YYYY-MM-DD 更适合国际交流。
  3. YYYY-MM-DD 更利于互操作性
  4. YYYY-MM-DD 更适合排序。

建议:为您的 XML 使用标准 type="xs:date" 并仅本地化数据输入/显示的日期格式。如果您坚持使用使用非标准日期格式的 XML,请研究预处理/后处理或编写自定义代码。您可能会从 here 得到一些想法。 .

关于c# - 字符串 '01/06/2015' 不是有效的 AllXsd 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37209945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com