gpt4 book ai didi

xml - 修改xsd :dateTime simple type to use different date-and-time separator

转载 作者:数据小太阳 更新时间:2023-10-29 01:48:46 26 4
gpt4 key购买 nike

我有一个遗留系统,它生成的 XML 带有类似于 ISO 8601 的时间戳,但使用空格来分隔日期和时间。例如。 2009-12-31 00:00:00。我想定义一个模式来定义这些时间戳的可能范围。 xsd:dateTime 非常适合该目的,但是,它使用 T 作为日期和时间之间的分隔符。我无法修改遗留系统以使用 T 作为分隔符返回时间戳。

有没有一种方法可以让 simpleType 定义派生自 xsd:dateTime,但会更改分隔符,或者我是否必须依赖具有适当模式的字符串和人类可读的评论?

更新:据我所知,我可以使用 dateTime 的模式来限制输入的 dateTime 对象的范围,但这不会改变分隔符。

例子:

<xs:restriction base="xs:dateTime">
<xs:pattern value="[2].*:[0-9]{2}"/>
</xs:restriction>

这将只允许日期时间从 2000 年开始并且没有小数秒和时区信息。

答案总结:

不可能使用 xs:dateTime 作为它的基本类型。然而,可以使用 xs:string 并定义一个模式。

<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{4}-[01][0-9]-[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-6][0-9]"/>
</xs:restriction>

当然,通过使用字符串,任何使用架构创建语言绑定(bind)的自动工具也将检索字符串,转换为日期/时间的适当语言类型必须手动完成。

最佳答案

您可以对 xs:string 数据类型进行正则表达式模式限制。

例如:

<xs:element name="specialDateTime">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9][0-9]/[0-9][0-9]/[0-9][0-9] [0-9][0-9]:[0-9][9-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>

编辑

我在 http://www.cs.wisc.edu/condor/classad/refman/node9.html 找到了这个例子.看起来您可以dateTime 设置模式限制:

<xsd:simpleType>
<xsd:restriction base="xsd:dateTime">
<xsd:pattern value="\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d[+\-]\d\d:\d\d" />
</xsd:restriction>
</xsd:simpleType>

希望对您有所帮助。

关于xml - 修改xsd :dateTime simple type to use different date-and-time separator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1899581/

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