接受日期或dateTime的自定义XSD简单类型

问题描述 投票:1回答:4

我有一个XML元素

<ManufactureDate>20150316</ManufactureDate>

使用自定义日期类型元素,

<xs:simpleType name="CustomDate">
    <xs:restriction base="xs:string">
       <xs:maxLength value="8"/>
       <xs:whiteSpace value="collapse"/>
       <xs:pattern value="\d*"/>
    </xs:restriction>
/xs:simpleType>

为了进行验证,但现在我希望另一个元素具有相同的CustomDate数据类型,但要像下面这样提供时间输入

<ExpirationDate>20150316T15:53:00</ExpirationDate>

有人知道我可以如何更改simpleType以接受两种格式吗?

xml xsd xsd-validation
4个回答
1
投票
请注意,这些基于正则表达式的约束仅在词法上近似于日期和时间数据类型。例如,如果xs:date禁止大于12的月份,则这些模式将接受它们。

1
投票
然后您可以使用xs:union接受这两种自定义类型,如下所示:

0
投票
因为我早先错过了括号,所以它对我不起作用。

0
投票
它使用标准的XSD date和dateTime格式,我怀疑这将是最标准的做法,而不是发明一种新格式。我什至认为这应该有效:
© www.soinside.com 2019 - 2024. All rights reserved.