[18] [[GML]] は [[ISO 19108]] モデルを 
[[XML Schema]] で[[符号化]]する方法を規定しています。

[19] [[ISO 8601:2004]] に基づく [[ISO 19108]] モデルを採用しつつ、
[[ISO 8601のプロファイル]]でありながら独自定義を有し微妙に [[ISO 8601]]
と異なる [[XML Schemaの日時形式]]を使って記述されており、
理論上の両者の整合性には疑問が残ります。
(実際上そこまで厳密に扱われることは無いとは思われます。)

* 仕様書

[REFS[
- [1] [[GML]]
-- [15] ([TIME[2018-05-30 22:45:22 +09:00]]) <http://schemas.opengis.net/gml/3.2.1/temporal.xsd>
-- [16] ([TIME[2018-05-30 22:45:22 +09:00]]) <http://schemas.opengis.net/gml/3.2.1/temporalReferenceSystems.xsd>
-- [17] ([TIME[2018-05-30 22:45:22 +09:00]]) <http://schemas.opengis.net/gml/3.2.1/temporalTopology.xsd>
]REFS]

* [CODE[gml:CalDate]]


[27] [CODE[TM_CalDate]] に相当しそうな [[XML Schemaデータ型]]
[DFN[[CODE[gml:CalDate]]]]
は [[ISO 8601のプロファイル]]であり、
[CODE[xs:date]],
[CODE[xs:gYearMonth]],
[CODE[xs:gYear]]
の[[和集合]]となっています。 [SRC[>>1 6.3]]

* [CODE[gml:TimePositionUnion]]

[3] 
[CODE[TM_Position]] に相当しそうな [[XML Schemaデータ型]]
[DFN[[CODE[gml:TimePositionUnion]]]]
は 
[CODE[gml:CalDate]],
[CODE[xs:time]],
[CODE[xs:dateTime]],
[CODE[xs:anyURI]],
[CODE[xs:decimal]]
の[[和集合]]となっています。
[SRC[>>1 6.3]]

* [CODE[gmlxbt:TimePositionUnion]]

[4] また別の [[XML Schemaデータ型]]
[DFN[[CODE[gmlxbt:TimePositionUnion]]]]
は 
[CODE[gml:CalDate]],
[CODE[gmlxbt:OrdDate]],
[CODE[gmlxbt:WeekDate]],
[CODE[xs:time]],
[CODE[xs:dateTime]],
[CODE[xs:anyURI]],
[CODE[xs:decimal]]
の[[和集合]]となっています。
[SRC[>>1 6.3]]

[5] 
[DFN[[CODE[gmlxbt:OrdDate]]]]
は
[[ISO 8601:2004]] の [[Ordinal Date]] です。
構文は[[正規表現]]
[CODE[-?[0-9]{4}-[0-9]{3}]]
です。
[SRC[>>1 6.3]]

[6] 
[DFN[[CODE[gmlxbt:WeekDate]]]]
は
[[ISO 8601:2004]] の [[Week Date]]
です。
構文は[[正規表現]]
[CODE[-?[0-9__&&]&&__{4}-W(0[1-9__&&]&&__|[1-4__&&]&&__[0-9]|5[0-3])(-[1-7])?]]
です。
[SRC[>>1 6.3]]

[7] この2つのデータ型の最初の[[年]]の部分は、
4桁[[以上]]で、4桁を越える場合[[先導0]]は禁止、
[CODE[0000]] も禁止、
とされています。
[SRC[>>1 6.3]]
この規定は示されている[[正規表現]]と矛盾する上、
現在の [[ISO 8601]] とも整合しません。
0年を使わないとしていることから、
[[XML Schema 1.0]] の [[XML Schema暦]]に倣ったのでしょうか。

* その他

[2] [[ISO 19108]] の各項を参照。

