/
118.txt
106 lines (74 loc) · 4.6 KB
/
118.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
[1] [DFN[[CODE(XML)[[VAR[xs:]]dateTime]]]] は [[XML Schema]]
で定義されている[[日付]]と[[時刻]]を表す[[データ型]]・[[書式]]です。
* 仕様書
[REFS[
- [17] [CITE@EN[W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes]] ([TIME[2012-04-04 21:34:51 +09:00]] 版) <http://www.w3.org/TR/xmlschema11-2/#dateTime>
- [12] ([TIME[2014-08-07 02:03:22 +09:00]] 版) <http://www.topografix.com/GPX/gpx_modified/0/1/gpx_modified.xsd>
]REFS]
* 値空間
[18] [[date/timeSevenPropertyModel]] のうち、[[·timezoneOffset·]] のみが省略可能です [SRC[>>17]]。
[23] [[日の数]]の制約も課されています [SRC[>>17]]。
* 字句空間
[24] 次のような[[文字列]]が[[字句空間]]に含まれます [SRC[>>17]]。
[FIG[
= [25] 省略可能: [CODE[[[-]]]]
= [26] [[ASCII数字]]4桁以上 ([[年]]): 4桁に満たない場合を除き、[[先導0]]禁止
= [27] [CODE[[[-]]]]
= [28] [[ASCII数字]]2桁 ([[月]]): 01~12
= [29] [CODE[[[-]]]]
= [30] [[ASCII数字]]2桁 ([[日]]): 01~[[日の数]]
= [31] [CODE[[[T]]]]
= [32] [[ASCII数字]]2桁 ([[時]]): 00~24
= [33] [CODE[[[:]]]]
= [34] [[ASCII数字]]2桁 ([[分]]): 00~59
= [35] [CODE[[[:]]]]
= [36] [[ASCII数字]]2桁 ([[秒]]): 00~59
= [37] 省略可能: [CODE[[[.]]]] の後 [[ASCII数字]]1桁以上
= [38] 省略可能: 次のいずれか ([[時差]])
=- [39] [CODE[[[Z]]]]
=- [40] 次の列
=-= [41] [CODE[[[+]]]] または [CODE[[[-]]]]
=-= [42] [[ASCII数字]]2桁 ([[時]]): 00~14
=-= [43] [CODE[[[:]]]]
=-= [44] [[ASCII数字]]2桁 ([[分]]): 00~59
]FIG]
[45] ただし、 >>32 が 24 のときは、 >>34、>>36、>>37 は 0 でなければいけません [SRC[>>17]]。
[46] ただし、 >>42 が 14 のときは、 >>44 は 0 でなければいけません [SRC[>>17]]。
* 暦
[20] [[先発グレゴリオ暦]]が用いられています。
[19] [[XML Schema 1.0]] では、[[0]]年は認められておらず、1年の前は-1年で、[[紀元前]]1年を表していました。
[21] [[XML Schema 1.1]] では、[[0]]年が認められ、1年の前は0年 ([[紀元前]]1年) で、その前が-1年
([[紀元前]]2年) を表すように変更されました [SRC[>>17]]。
;; [22] さらっと非互換変更していますね...
[2] [[正閏秒]]は表現できません。
* IETF の変種
[8] [[IETF]] の多くの仕様書は、 [[RFC 3339の日付形式]]と [CODE(XML)@en[[[xs:dateTime]]]]
の両方の要件を満たすことを求めています。 (詳しくは[[IETFのXML日付形式]]の項を参照。)
* XRD の変種
[REFS[
- [3] [CITE[Extensible Resource Descriptor (XRD) Version 1.0]] ([TIME[2010-11-01 20:25:40 +09:00]] 版) <http://docs.oasis-open.org/xri/xrd/v1.0/xrd-1.0.html#types.time>
- [5] [CITE[Extensible Resource Descriptor (XRD) Version 1.0]] ([TIME[2010-11-01 20:25:40 +09:00]] 版) <http://docs.oasis-open.org/xri/xrd/v1.0/xrd-1.0.html#element.expires>
]REFS]
[4] >>3 は [CODE(XML)@en[[[xs:dateTime]]]] に、[[時間帯]] [CODE[[[Z]]]]
でなければならないとの制約を課しています。 ([[時間帯]]の省略は認められないとも解釈できます。)
[11] >>5 ではそれに加えて[[秒]]の[[小数部]]も禁止しています。
* GPX の変種
[13] [[GPX]] の拡張の [CODE(XMLe)@en[time][time (GPX)]] [[要素]]の[[データ型]]
[DFN[[CODE[utcDateTimeType]]]] は、 [CODE[xs:dateTime]] に、
末尾が [CODE[Z]] でなければならないとの制約を加えています [SRC[>>12]]。
* 関連
[9] [[W3C-DTF]]、[[RFC 3339の日付形式]]や[[HTMLの日付形式]]
([[大域日時文字列]]または[[地方日時文字列]]) と似ていますが、細部が異なります。
[47] [[派生型]]として [CODE[[[xs:dateTimeStamp]]]] があり、そちらは[[時差]]が必須です。
[48] [[ISO 8601の日付形式]>>25]に、類似形式との比較があります。
* メモ
[6] [CITE@en[XQuery 1.0 and XPath 2.0 Data Model (XDM) (Second Edition)]]
( ([TIME[2010-12-17 00:06:35 +09:00]] 版))
<http://www.w3.org/TR/2010/REC-xpath-datamodel-20101214/#dates-and-times>
[7] [CITE@EN[W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes]]
( ([TIME[2012-04-05 06:34:51 +09:00]] 版))
<http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/#dateTime>
[10] [[OpenDocument]] は [[XML Schema]] [[データ型]]で定義された[[日付形式]]を用いています。
[16] [CITE@EN[XQuery 1.0 and XPath 2.0 Functions and Operators (Second Edition)]]
( ([TIME[2010-12-17 00:06:54 +09:00]] 版))
<http://www.w3.org/TR/2010/REC-xpath-functions-20101214/#durations-dates-times>