Xml XSD:我如何接受与任何一组类型匹配的数据?

Xml XSD:我如何接受与任何一组类型匹配的数据?,xml,xsd,Xml,Xsd,在我的模式中,我希望接受一个包含格式化为或的数据的元素 例如,这些元素中的任何一个都应验证: <event_ts>2012-04-18</event_ts> <event_ts>2012-04-18T12:00:00</event_ts> <event_ts>2012-04-18T12:00:00Z</event_ts> <event_ts>2012-04-18T12:00:00-05:00</event_

在我的模式中,我希望接受一个包含格式化为或的数据的元素

例如,这些元素中的任何一个都应验证:

<event_ts>2012-04-18</event_ts>
<event_ts>2012-04-18T12:00:00</event_ts>
<event_ts>2012-04-18T12:00:00Z</event_ts>
<event_ts>2012-04-18T12:00:00-05:00</event_ts>
2012-04-18
2012-04-18T12:00:00
2012-04-18T12:00:00Z
2012-04-18T12:00:00-05:00
如果我只是对这个元素使用
dateTime
类型,我的第一个示例将不会通过验证,因为
dateTime
规范规定必须存在一天中的时间部分

XML模式中是否存在类型枚举而不是显式字符串


我真的不想在这里用一个大的正则表达式重新发明ISO 8601轮子。

我会为您的事件使用一个新类型,它被定义为xs:date和xs:dateTime的联合

<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="event_ts">
        <xsd:simpleType>
            <xsd:union memberTypes="xsd:date xsd:dateTime"/>
        </xsd:simpleType>
    </xsd:element>
</xsd:schema>

那么您的XML是有效的