3

我读过我们可以对 xsd:datetime 字段使用 minInclusive 和 maxInclusive 限制。但是如何确保我的 dateTime 字段不会出现在未来 5 分钟内?我知道如何在 java 中处理它。但我希望在架构级别进行验证。请帮我。

4

1 回答 1

2

可以使用 XSD 1.1 来完成。例子:

<xs:element name="myDateTime">
    <xs:simpleType>
        <xs:restriction base="xs:dateTime">
            <xs:assertion test="$value lt (current-dateTime() + xs:dayTimeDuration('PT5M'))"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

解释:

current-dateTime() + xs:dayTimeDuration('PT5M')与当前日期相加 5 分钟。

lt代表低于,因为该字符<不能在该部分使用。

$value保存 XSD 1.1 断言中的值。

另请参阅:XPath 2.0 规范中的 xs:dayTimeDuration

于 2016-05-24T18:35:12.500 回答