1

date私のスキーマでは、 または のいずれかとしてフォーマットされたデータを含む要素を受け入れたいと考えています dateTime

たとえば、次の要素はいずれも検証する必要があります。

<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>

この要素の型を使用するだけdateTimeでは、最初の例は検証に合格しませんdateTime。仕様では、時刻部分が存在する必要があると規定されているためです。

明示的な文字列ではなく、の列挙のようなものが XML スキーマに存在しますか?

ここで大きな正規表現を使用して ISO 8601 ホイールを再発明することは避けたいと思います。

4

1 に答える 1

3

xs:date と xs:dateTime の和集合として定義された新しいタイプの event_ts を使用します。

<?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は有効です...

于 2012-04-18T16:55:29.540 に答える