是否有可能以某种方式在XML Schema中dateTime
中需要时区?
答案 0 :(得分:2)
要求xs:dateTime
设置时区,请将xs:pattern
方面添加到xs:restriction
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="dateTimeWithRequiredTimeZone">
<xs:restriction base="xs:dateTime">
<xs:pattern value="\d{4}-\d\d-\d\dT\d\d:\d\d:\d\dZ"/>
<xs:pattern value="\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d\+\d\d:\d\d"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
修改强>:
正如迈克尔凯帮助指出的那样,上述模式过度指定了要求。就像xs:dateTime
检查已经限制了每个日期和时间限制的数字一样,它也将限制它们是数字。因此,模式只能参与时区划分xs:dateTime
:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="dateTimeWithRequiredTimeZone">
<xs:restriction base="xs:dateTime">
<xs:pattern value=".{20}.*"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
同样根据迈克尔:XSD 1.1有explicitTimeZone="required|prohibited|optional"