Project

General

Profile

1 9238 tao
<?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>