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