【发布时间】:2016-02-24 00:09:15
【问题描述】:
有没有办法强制 xsd:date 或 xsd:datetime 字段在 xml 有效负载中包含时区?
我尝试过的所有验证器、eclipse、camel 等都接受这些字段,无论是否附加了时区。
我想强制要求时区始终存在于 XML 中。
编辑:
我希望有一种标准化的方式来处理这种情况。
最后,当我使用 1.0 XSD 时,我采用了以下解决方案:
<xs:simpleType name="dateNoTz">
<xs:restriction base="xs:date">
<xs:pattern value="\d{4}-[01]\d-[0-3]\d"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="dateTimeNoTz">
<xs:restriction base="xs:dateTime">
<xs:pattern value="\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(.\d?\d?\d?)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="dateTimeTz">
<xs:restriction base="xs:dateTime">
<xs:pattern value="\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d(.\d?\d?\d?)?((\+[01]\d:[0-5]\d)|Z)"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="dateTz">
<xs:restriction base="xs:date">
<xs:pattern value="\d{4}-[01]\d-[0-3]\d((\+[01]\d:[0-6]\d)|Z)"/>
</xs:restriction>
</xs:simpleType>
【问题讨论】:
标签: xml xsd xsd-validation