xml 架构更改日期格式

adi*_*ikh 2 xml xsd date

在 xml 模式数据类型中 --> 日期默认允许日期为 yyyy-mm-dd 格式。

我们如何修改它以使其接受 yyyy/mm/dd 格式样式?

Mic*_*Kay 5

您无法让标准 xs:date 类型接受标准格式以外的格式。你可以做的是定义一个带有模式约束的字符串数据类型;但它没有日期语义,例如它将接受 1999/02/29。

Saxon 的 XSD 处理器有一个实验性扩展 saxon:preprocess,它允许您更改数据类型的词汇表示。当然,使用它的人并不多,因为他们希望他们的模式能够互操作;但它正是你想要的,所以我想我会提到它。

另一个经常被忽视但可能更实用的解决方案是让您的处理管道在执行验证步骤之前执行转换步骤。这种方法可以用来克服 XML 模式的许多限制,但它的知名度还不够高。


Sun*_*nil 5

您不能将日期类型更改为特定格式,但可以将其作为字符串并选择所需的特定格式。

日期格式为MM/DD/YYYY。下面给出了代码片段。

<xs:element name="StartDate">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:pattern value="\d{2}[/]\d{2}[/]\d{4}"></xs:pattern>
            <xs:length value="10"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)