1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
<schema targetNamespace="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="3.1.1.2">
|
3
|
<annotation>
|
4
|
<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1"/>
|
5
|
<documentation xml:lang="en">The temporal schema for GML 3.1 provides constructs for handling time-varying spatial data.
|
6
|
This schema reflects a partial implementation of the model described in ISO 19108:2002.
|
7
|
|
8
|
GML is an OGC Standard.
|
9
|
Copyright (c) 2001,2005,2010 Open Geospatial Consortium.
|
10
|
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
|
11
|
</documentation>
|
12
|
</annotation>
|
13
|
<!-- ================================================================== -->
|
14
|
<include schemaLocation="gml.xsd"/>
|
15
|
<include schemaLocation="gmlBase.xsd"/>
|
16
|
<!-- ================================================================== -->
|
17
|
<!-- ==== Time Object ===== -->
|
18
|
<!-- ================================================================== -->
|
19
|
<element name="_TimeObject" type="gml:AbstractTimeObjectType" abstract="true" substitutionGroup="gml:_GML">
|
20
|
<annotation>
|
21
|
<documentation xml:lang="en">This abstract element acts as the head of the substitution group for temporal primitives and complexes.</documentation>
|
22
|
</annotation>
|
23
|
</element>
|
24
|
<!-- ===================================== -->
|
25
|
<complexType name="AbstractTimeObjectType" abstract="true">
|
26
|
<annotation>
|
27
|
<documentation xml:lang="en">The abstract supertype for temporal objects.</documentation>
|
28
|
</annotation>
|
29
|
<complexContent>
|
30
|
<extension base="gml:AbstractGMLType"/>
|
31
|
</complexContent>
|
32
|
</complexType>
|
33
|
<!-- ================================================================== -->
|
34
|
<!-- ==== Time Primitive ===== -->
|
35
|
<!-- ================================================================== -->
|
36
|
<element name="_TimePrimitive" type="gml:AbstractTimePrimitiveType" abstract="true" substitutionGroup="gml:_TimeObject">
|
37
|
<annotation>
|
38
|
<documentation xml:lang="en">This abstract element acts as the head of the substitution group for temporal primitives.</documentation>
|
39
|
</annotation>
|
40
|
</element>
|
41
|
<!-- ===================================== -->
|
42
|
<complexType name="AbstractTimePrimitiveType" abstract="true">
|
43
|
<annotation>
|
44
|
<documentation xml:lang="en">The abstract supertype for temporal primitives.</documentation>
|
45
|
</annotation>
|
46
|
<complexContent>
|
47
|
<extension base="gml:AbstractTimeObjectType">
|
48
|
<sequence>
|
49
|
<element name="relatedTime" type="gml:RelatedTimeType" minOccurs="0" maxOccurs="unbounded"/>
|
50
|
</sequence>
|
51
|
</extension>
|
52
|
</complexContent>
|
53
|
</complexType>
|
54
|
<!-- ================================================================== -->
|
55
|
<complexType name="TimePrimitivePropertyType">
|
56
|
<sequence minOccurs="0">
|
57
|
<element ref="gml:_TimePrimitive"/>
|
58
|
</sequence>
|
59
|
<attributeGroup ref="gml:AssociationAttributeGroup"/>
|
60
|
</complexType>
|
61
|
<!-- ================================================================== -->
|
62
|
<complexType name="RelatedTimeType">
|
63
|
<complexContent>
|
64
|
<extension base="gml:TimePrimitivePropertyType">
|
65
|
<attribute name="relativePosition">
|
66
|
<simpleType>
|
67
|
<restriction base="string">
|
68
|
<enumeration value="Before"/>
|
69
|
<enumeration value="After"/>
|
70
|
<enumeration value="Begins"/>
|
71
|
<enumeration value="Ends"/>
|
72
|
<enumeration value="During"/>
|
73
|
<enumeration value="Equals"/>
|
74
|
<enumeration value="Contains"/>
|
75
|
<enumeration value="Overlaps"/>
|
76
|
<enumeration value="Meets"/>
|
77
|
<enumeration value="OverlappedBy"/>
|
78
|
<enumeration value="MetBy"/>
|
79
|
<enumeration value="BegunBy"/>
|
80
|
<enumeration value="EndedBy"/>
|
81
|
</restriction>
|
82
|
</simpleType>
|
83
|
</attribute>
|
84
|
</extension>
|
85
|
</complexContent>
|
86
|
</complexType>
|
87
|
<!-- ================================================================== -->
|
88
|
<!-- ==== Time Complex ===== -->
|
89
|
<!-- ================================================================== -->
|
90
|
<element name="_TimeComplex" type="gml:AbstractTimeComplexType" abstract="true" substitutionGroup="gml:_TimeObject">
|
91
|
<annotation>
|
92
|
<documentation xml:lang="en">This abstract element acts as the head of the substitution group for temporal complexes.
|
93
|
Temporal complex is an aggregation of temporal primitives as its components,
|
94
|
represents a temporal geometric complex and a temporal topology complex.
|
95
|
N.B. Temporal geometric complex is not defined in this schema.</documentation>
|
96
|
</annotation>
|
97
|
</element>
|
98
|
<!-- ================================================================== -->
|
99
|
<complexType name="AbstractTimeComplexType" abstract="true">
|
100
|
<annotation>
|
101
|
<documentation xml:lang="en">The abstract supertype for temporal complexes.</documentation>
|
102
|
</annotation>
|
103
|
<complexContent>
|
104
|
<extension base="gml:AbstractTimeObjectType"/>
|
105
|
</complexContent>
|
106
|
</complexType>
|
107
|
<!-- ================================================================== -->
|
108
|
<!-- ==== Time Geometric Primitive ===== -->
|
109
|
<!-- ================================================================== -->
|
110
|
<element name="_TimeGeometricPrimitive" type="gml:AbstractTimeGeometricPrimitiveType" abstract="true" substitutionGroup="gml:_TimePrimitive">
|
111
|
<annotation>
|
112
|
<documentation xml:lang="en">This abstract element acts as the head of the substitution group for temporal geometric primitives.</documentation>
|
113
|
</annotation>
|
114
|
</element>
|
115
|
<!-- ===================================== -->
|
116
|
<complexType name="AbstractTimeGeometricPrimitiveType" abstract="true">
|
117
|
<annotation>
|
118
|
<documentation xml:lang="en">The abstract supertype for temporal geometric primitives.
|
119
|
A temporal geometry must be associated with a temporal reference system via URI.
|
120
|
The Gregorian calendar with UTC is the default reference system, following ISO
|
121
|
8601. Other reference systems in common use include the GPS calendar and the
|
122
|
Julian calendar.</documentation>
|
123
|
</annotation>
|
124
|
<complexContent>
|
125
|
<extension base="gml:AbstractTimePrimitiveType">
|
126
|
<attribute name="frame" type="anyURI" use="optional" default="#ISO-8601"/>
|
127
|
</extension>
|
128
|
</complexContent>
|
129
|
</complexType>
|
130
|
<!-- ================================================================== -->
|
131
|
<complexType name="TimeGeometricPrimitivePropertyType">
|
132
|
<sequence minOccurs="0">
|
133
|
<element ref="gml:_TimeGeometricPrimitive"/>
|
134
|
</sequence>
|
135
|
<attributeGroup ref="gml:AssociationAttributeGroup"/>
|
136
|
</complexType>
|
137
|
<!-- ================================================================== -->
|
138
|
<!-- ==== Time Instant ===== -->
|
139
|
<!-- ================================================================== -->
|
140
|
<element name="TimeInstant" type="gml:TimeInstantType" substitutionGroup="gml:_TimeGeometricPrimitive"/>
|
141
|
<!-- ===================================== -->
|
142
|
<complexType name="TimeInstantType">
|
143
|
<annotation>
|
144
|
<documentation>Omit back-pointers begunBy, endedBy.</documentation>
|
145
|
</annotation>
|
146
|
<complexContent>
|
147
|
<extension base="gml:AbstractTimeGeometricPrimitiveType">
|
148
|
<sequence>
|
149
|
<element ref="gml:timePosition"/>
|
150
|
</sequence>
|
151
|
</extension>
|
152
|
</complexContent>
|
153
|
</complexType>
|
154
|
<!-- ================================================================== -->
|
155
|
<complexType name="TimeInstantPropertyType">
|
156
|
<sequence minOccurs="0">
|
157
|
<element ref="gml:TimeInstant"/>
|
158
|
</sequence>
|
159
|
<attributeGroup ref="gml:AssociationAttributeGroup"/>
|
160
|
</complexType>
|
161
|
<!-- ================================================================== -->
|
162
|
<!-- ==== Time Period ===== -->
|
163
|
<!-- ================================================================== -->
|
164
|
<element name="TimePeriod" type="gml:TimePeriodType" substitutionGroup="gml:_TimeGeometricPrimitive"/>
|
165
|
<!-- ===================================== -->
|
166
|
<complexType name="TimePeriodType">
|
167
|
<complexContent>
|
168
|
<extension base="gml:AbstractTimeGeometricPrimitiveType">
|
169
|
<sequence>
|
170
|
<choice>
|
171
|
<element name="beginPosition" type="gml:TimePositionType"/>
|
172
|
<element name="begin" type="gml:TimeInstantPropertyType"/>
|
173
|
</choice>
|
174
|
<choice>
|
175
|
<element name="endPosition" type="gml:TimePositionType"/>
|
176
|
<element name="end" type="gml:TimeInstantPropertyType"/>
|
177
|
</choice>
|
178
|
<group ref="gml:timeLength" minOccurs="0"/>
|
179
|
</sequence>
|
180
|
</extension>
|
181
|
</complexContent>
|
182
|
</complexType>
|
183
|
<!-- ================================================================== -->
|
184
|
<complexType name="TimePeriodPropertyType">
|
185
|
<sequence minOccurs="0">
|
186
|
<element ref="gml:TimePeriod"/>
|
187
|
</sequence>
|
188
|
<attributeGroup ref="gml:AssociationAttributeGroup"/>
|
189
|
</complexType>
|
190
|
<!-- ================================================================== -->
|
191
|
<!-- ==== duration & interval ===== -->
|
192
|
<!-- ================================================================== -->
|
193
|
<group name="timeLength">
|
194
|
<annotation>
|
195
|
<documentation>This model group is provided as an alternative to the abstract susbstitutionGroup head _timeLength.
|
196
|
ISO 19136 comment 411</documentation>
|
197
|
</annotation>
|
198
|
<choice>
|
199
|
<element ref="gml:duration"/>
|
200
|
<element ref="gml:timeInterval"/>
|
201
|
</choice>
|
202
|
</group>
|
203
|
<!-- ================================================================== -->
|
204
|
<element name="duration" type="duration">
|
205
|
<annotation>
|
206
|
<documentation xml:lang="en">This element is an instance of the primitive xsd:duration simple type to
|
207
|
enable use of the ISO 8601 syntax for temporal length (e.g. P5DT4H30M).
|
208
|
It is a valid subtype of TimeDurationType according to section 3.14.6,
|
209
|
rule 2.2.4 in XML Schema, Part 1.</documentation>
|
210
|
</annotation>
|
211
|
</element>
|
212
|
<!-- ================================================================== -->
|
213
|
<element name="timeInterval" type="gml:TimeIntervalLengthType">
|
214
|
<annotation>
|
215
|
<documentation>This element is a valid subtype of TimeDurationType
|
216
|
according to section 3.14.6, rule 2.2.4 in XML Schema, Part 1.</documentation>
|
217
|
</annotation>
|
218
|
</element>
|
219
|
<!-- ===================================== -->
|
220
|
<complexType name="TimeIntervalLengthType" final="#all">
|
221
|
<annotation>
|
222
|
<documentation xml:lang="en">This type extends the built-in xsd:decimal simple type to allow floating-point
|
223
|
values for temporal length. According to the ISO 11404 model you have to use
|
224
|
positiveInteger together with appropriate values for radix and factor. The
|
225
|
resolution of the time interval is to one radix ^(-factor) of the specified
|
226
|
time unit (e.g. unit="second", radix="10", factor="3" specifies a resolution
|
227
|
of milliseconds). It is a subtype of TimeDurationType.</documentation>
|
228
|
</annotation>
|
229
|
<simpleContent>
|
230
|
<extension base="decimal">
|
231
|
<attribute name="unit" type="gml:TimeUnitType" use="required"/>
|
232
|
<attribute name="radix" type="positiveInteger" use="optional"/>
|
233
|
<attribute name="factor" type="integer" use="optional"/>
|
234
|
</extension>
|
235
|
</simpleContent>
|
236
|
</complexType>
|
237
|
<!-- ================================================================== -->
|
238
|
<simpleType name="TimeUnitType">
|
239
|
<annotation>
|
240
|
<documentation xml:lang="en">Standard units for measuring time intervals (see ISO 31-1).</documentation>
|
241
|
</annotation>
|
242
|
<union>
|
243
|
<simpleType>
|
244
|
<restriction base="string">
|
245
|
<enumeration value="year"/>
|
246
|
<enumeration value="day"/>
|
247
|
<enumeration value="hour"/>
|
248
|
<enumeration value="minute"/>
|
249
|
<enumeration value="second"/>
|
250
|
</restriction>
|
251
|
</simpleType>
|
252
|
<simpleType>
|
253
|
<restriction base="string">
|
254
|
<pattern value="other:\w{2,}"/>
|
255
|
</restriction>
|
256
|
</simpleType>
|
257
|
</union>
|
258
|
</simpleType>
|
259
|
<!-- ================================================================== -->
|
260
|
<!-- ==== Time Position ===== -->
|
261
|
<!-- ================================================================== -->
|
262
|
<element name="timePosition" type="gml:TimePositionType">
|
263
|
<annotation>
|
264
|
<documentation>Direct representation of a temporal position</documentation>
|
265
|
</annotation>
|
266
|
</element>
|
267
|
<!-- ================================================================== -->
|
268
|
<complexType name="TimePositionType" final="#all">
|
269
|
<annotation>
|
270
|
<documentation xml:lang="en">Direct representation of a temporal position.
|
271
|
Indeterminate time values are also allowed, as described in ISO 19108. The indeterminatePosition
|
272
|
attribute can be used alone or it can qualify a specific value for temporal position (e.g. before
|
273
|
2002-12, after 1019624400).
|
274
|
For time values that identify position within a calendar, the calendarEraName attribute provides
|
275
|
the name of the calendar era to which the date is referenced (e.g. the Meiji era of the Japanese calendar).</documentation>
|
276
|
</annotation>
|
277
|
<simpleContent>
|
278
|
<extension base="gml:TimePositionUnion">
|
279
|
<attribute name="frame" type="anyURI" use="optional" default="#ISO-8601"/>
|
280
|
<attribute name="calendarEraName" type="string" use="optional"/>
|
281
|
<attribute name="indeterminatePosition" type="gml:TimeIndeterminateValueType" use="optional"/>
|
282
|
</extension>
|
283
|
</simpleContent>
|
284
|
</complexType>
|
285
|
<!-- ================================================================== -->
|
286
|
<simpleType name="TimePositionUnion">
|
287
|
<annotation>
|
288
|
<documentation xml:lang="en">The ISO 19108:2002 hierarchy of subtypes for temporal position are collapsed
|
289
|
by defining a union of XML Schema simple types for indicating temporal position relative
|
290
|
to a specific reference system.
|
291
|
|
292
|
Dates and dateTime may be indicated with varying degrees of precision.
|
293
|
dateTime by itself does not allow right-truncation, except for fractions of seconds.
|
294
|
When used with non-Gregorian calendars based on years, months, days,
|
295
|
the same lexical representation should still be used, with leading zeros added if the
|
296
|
year value would otherwise have fewer than four digits.
|
297
|
|
298
|
An ordinal position may be referenced via URI identifying the definition of an ordinal era.
|
299
|
|
300
|
A time coordinate value is indicated as a decimal (e.g. UNIX time, GPS calendar).</documentation>
|
301
|
</annotation>
|
302
|
<union memberTypes="gml:CalDate time dateTime anyURI decimal"/>
|
303
|
</simpleType>
|
304
|
<!-- ================================================================== -->
|
305
|
<simpleType name="CalDate">
|
306
|
<annotation>
|
307
|
<documentation xml:lang="en">Calendar dates may be indicated with varying degrees of precision,
|
308
|
using year, year-month, date.
|
309
|
When used with non-Gregorian calendars based on years, months, days,
|
310
|
the same lexical representation should still be used, with leading zeros added if the
|
311
|
year value would otherwise have fewer than four digits.
|
312
|
time is used for a position that recurs daily (see clause 5.4.4.2 of ISO 19108:2002).</documentation>
|
313
|
</annotation>
|
314
|
<union memberTypes="date gYearMonth gYear"/>
|
315
|
</simpleType>
|
316
|
<!-- ================================================================== -->
|
317
|
<simpleType name="TimeIndeterminateValueType">
|
318
|
<annotation>
|
319
|
<documentation xml:lang="en">This enumerated data type specifies values for indeterminate positions.</documentation>
|
320
|
</annotation>
|
321
|
<restriction base="string">
|
322
|
<enumeration value="after"/>
|
323
|
<enumeration value="before"/>
|
324
|
<enumeration value="now"/>
|
325
|
<enumeration value="unknown"/>
|
326
|
</restriction>
|
327
|
</simpleType>
|
328
|
<!-- ================================================================== -->
|
329
|
<!-- ==== Convenience properties ==== -->
|
330
|
<!-- ================================================================== -->
|
331
|
<element name="validTime" type="gml:TimePrimitivePropertyType"/>
|
332
|
<!-- ===================================== -->
|
333
|
</schema>
|