我使用的XSD有一个像:
这样的元素<xsd:element name="TdlOrderTimestamp" type="xsd:dateTime" minOccurs="0"/>
但我被告知系统实际上需要三秒小时的精度。这是allowed by xsd:dateTime
,但不是必需的。
我们要求:
<TdlOrderTimestamp>2015-05-12T18:58:02+00:00</TdlOrderTimestamp>
我们应该要求:
<TdlOrderTimestamp>2015-05-12T18:58:02.123+00:00</TdlOrderTimestamp>
在XSD中指定此要求的最简单方法是什么?理想情况下,我希望尽可能贴近xsd:dateTime
和ISO8601的其他习语和特质。
答案 0 :(得分:1)
一个简单的解决方案是定义一个扩展 xsd:dateTime 的新简单类型,并添加模式限制,指示该值必须包含一个后跟三位数的点。例如:
<xsd:simpleType name="dateTimeWithPrecision">
<xsd:restriction base="xsd:dateTime">
<xsd:pattern value=".*\.\d{3}.*"/>
</xsd:restriction>
</xsd:simpleType>
如果需要,您可以将模式调整为其他所需的dateTime格式。