xsd:具有特定精度的日期时间

时间:2016-01-07 16:29:14

标签: xml xsd precision

我使用的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的其他习语和特质。

1 个答案:

答案 0 :(得分:1)

一个简单的解决方案是定义一个扩展 xsd:dateTime 的新简单类型,并添加模式限制,指示该值必须包含一个后跟三位数的点。例如:

<xsd:simpleType name="dateTimeWithPrecision">
    <xsd:restriction base="xsd:dateTime">
        <xsd:pattern value=".*\.\d{3}.*"/>
    </xsd:restriction>
</xsd:simpleType>

如果需要,您可以将模式调整为其他所需的dateTime格式。