-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathgml_combo_v3_2_1_simplified.xsd
266 lines (261 loc) · 15.2 KB
/
gml_combo_v3_2_1_simplified.xsd
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.opengis.net/gml/3.2" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.opengis.net/gml/3.2" elementFormDefault="qualified" version="1.0" id="gml_combo_v3_2_1_simplified">
<xsd:annotation>
<xsd:appinfo source="urn:x-ogc:specification:gml:schema-xsd:basicTypes:3.2.1">basicTypes.xsd</xsd:appinfo>
<xsd:documentation>
----------------------------
This is a simplified file partly based on the combined content of
gml\basicTypes.xsd
gml\geometryBasic0d1d-extract-v3_2_1.xsd
gml\gmlBase-extract-v3_2_1.xsd
gml\gmlBasic2d-extract-v3_2_1-.xsd
as one file.
Note that xmlns:xlink="http://www.w3.org/1999/xlink" is not included in the schema element above.
This file should not be interpreted as being normative.
----------------------------
See ISO/DIS 19136 8.2.
W3C XML Schema provides a set of built-in "simple" types which define methods for representing values as literals without internal markup. These are described in W3C XML Schema Part 2:2001. Because GML is an XML encoding in which instances are described using XML Schema, these simple types shall be used as far as possible and practical for the representation of data types. W3C XML Schema also provides methods for defining
- new simple types by restriction and combination of the built-in types, and
- complex types, with simple content, but which also have XML attributes.
In many places where a suitable built-in simple type is not available, simple content types derived using the XML Schema mechanisms are used for the representation of data types in GML.
A set of these simple content types that are required by several GML components are defined in the basicTypes schema, as well as some elements based on them. These are primarily based around components needed to record amounts, counts, flags and terms, together with support for exceptions or null values.
GML is an OGC Standard.
Copyright (c) 2007, 2010, 2016, 2018 Open Geospatial Consortium.
Copyright (c) 2007,2010 Open Geospatial Consortium, Inc. All Rights Reserved.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
See also https://www.ogc.org/standards/gml and http://schemas.opengis.net/gml/3.2.1/
</xsd:documentation>
</xsd:annotation>
<!-- ================================================================================================================================== -->
<!-- ================================================================================================================================== -->
<xsd:element name="pos" type="gml:T_pos"/>
<xsd:element name="posList" type="gml:T_posList"/>
<xsd:element name="LineString" type="gml:T_LineString"/>
<xsd:element name="Polygon" type="gml:T_Polygon">
<xsd:annotation>
<xsd:documentation>A Polygon is a special surface that is defined by a single surface patch (see D.3.6). The boundary of this patch is coplanar and the polygon uses planar interpolation in its interior.
The elements exterior and interior describe the surface boundary of the polygon.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<!-- ================================================================================================================================== -->
<!-- ================================================================================================================================== -->
<xsd:element name="Point" type="gml:T_Point">
<xsd:annotation>
<xsd:documentation>A Point is defined by a single coordinate tuple. The direct position of a point is specified by the pos element which is of type DirectPositionType.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="LinearRing" type="gml:T_LinearRing">
<xsd:annotation>
<xsd:documentation>A LinearRing is defined by four or more coordinate tuples, with linear interpolation between them; the first and last coordinates shall be coincident. The number of direct positions in the list shall be at least four.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="exterior" type="gml:T_exterior">
<xsd:annotation>
<xsd:documentation>A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="interior" type="gml:T_interior">
<xsd:annotation>
<xsd:documentation>A boundary of a surface consists of a number of rings. The "interior" rings separate the surface / surface patch from the area enclosed by the rings.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="pointProperty" type="gml:T_pointProperty">
<xsd:annotation>
<xsd:documentation>This property element either references a point via the XLink-attributes or contains the point element. pointProperty is the predefined property which may be used by GML Application Schemas whenever a GML feature has a property with a value that is substitutable for Point.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="descriptionReference" type="gml:ReferenceType">
<xsd:annotation>
<xsd:documentation>The value of this property is a remote text description of the object. The xlink:href attribute of the gml:descriptionReference property references the external description.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="name" type="gml:CodeType">
<xsd:annotation>
<xsd:documentation>The gml:name property provides a label or identifier for the object, commonly a descriptive name. An object may have several names, typically assigned by different authorities. gml:name uses the gml:CodeType content model. The authority for a name is indicated by the value of its (optional) codeSpace attribute. The name may or may not be unique, as determined by the rules of the organization responsible for the codeSpace. In common usage there will be one name per authority, so a processing application may select the name from its preferred codeSpace.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="identifier" type="gml:CodeWithAuthorityType">
<xsd:annotation>
<xsd:documentation>Often, a special identifier is assigned to an object by the maintaining authority with the intention that it is used in references to the object For such cases, the codeSpace shall be provided. That identifier is usually unique either globally or within an application domain. gml:identifier is a pre-defined property for such identifiers.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="ReferenceType">
<xsd:annotation>
<xsd:documentation>gml:ReferenceType is intended to be used in application schemas directly, if a property element shall use a "by-reference only" encoding.</xsd:documentation>
</xsd:annotation>
<xsd:attributeGroup ref="gml:OwnershipAttributeGroup"/>
<xsd:attributeGroup ref="gml:AssociationAttributeGroup"/>
</xsd:complexType>
<xsd:attributeGroup name="OwnershipAttributeGroup">
<xsd:annotation>
<xsd:documentation>Encoding a GML property inline vs. by-reference shall not imply anything about the "ownership" of the contained or referenced GML Object, i.e. the encoding style shall not imply any "deep-copy" or "deep-delete" semantics. To express ownership over the contained or referenced GML Object, the gml:OwnershipAttributeGroup attribute group may be added to object-valued property elements. If the attribute group is not part of the content model of such a property element, then the value may not be "owned".
When the value of the owns attribute is "true", the existence of inline or referenced object(s) depends upon the existence of the parent object.</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="owns" type="xsd:boolean" default="false"/>
</xsd:attributeGroup>
<xsd:attributeGroup name="AssociationAttributeGroup">
<xsd:annotation>
<xsd:documentation>XLink components are the standard method to support hypertext referencing in XML. An XML Schema attribute group, gml:AssociationAttributeGroup, is provided to support the use of Xlinks as the method for indicating the value of a property by reference in a uniform manner in GML.</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="nilReason" type="gml:NilReasonType"/>
</xsd:attributeGroup>
<xsd:complexType name="CodeType">
<xsd:annotation>
<xsd:documentation>gml:CodeType is a generalized type to be used for a term, keyword or name.
It adds a XML attribute codeSpace to a term, where the value of the codeSpace attribute (if present) shall indicate a dictionary, thesaurus, classification scheme, authority, or pattern for the term.</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="codeSpace" type="xsd:anyURI"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="CodeWithAuthorityType">
<xsd:annotation>
<xsd:documentation>gml:CodeWithAuthorityType requires that the codeSpace attribute is provided in an instance.</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="gml:CodeType">
<xsd:attribute name="codeSpace" type="xsd:anyURI" use="required"/>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<xsd:group name="StandardObjectProperties">
<xsd:sequence>
<xsd:element ref="gml:descriptionReference" minOccurs="0"/>
<xsd:element ref="gml:identifier" minOccurs="0"/>
<xsd:element ref="gml:name" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:group>
<xsd:simpleType name="NilReasonType">
<xsd:annotation>
<xsd:documentation>gml:NilReasonType defines a content model that allows recording of an explanation for a void value or other exception.
gml:NilReasonType is a union of the following enumerated values:
- inapplicable there is no value
- missing the correct value is not readily available to the sender of this data. Furthermore, a correct value may not exist
- template the value will be available later
- unknown the correct value is not known to, and not computable by, the sender of this data. However, a correct value probably exists
- withheld the value is not divulged
- other:text other brief explanation, where text is a string of two or more characters with no included spaces
and
- anyURI which should refer to a resource which describes the reason for the exception
A particular community may choose to assign more detailed semantics to the standard values provided. Alternatively, the URI method enables a specific or more complete explanation for the absence of a value to be provided elsewhere and indicated by-reference in an instance document.
gml:NilReasonType is used as a member of a union in a number of simple content types where it is necessary to permit a value from the NilReasonType union as an alternative to the primary type.</xsd:documentation>
</xsd:annotation>
<xsd:union memberTypes="gml:NilReasonEnumeration xsd:anyURI"/>
</xsd:simpleType>
<xsd:simpleType name="NilReasonEnumeration">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="inapplicable"/>
<xsd:enumeration value="missing"/>
<xsd:enumeration value="template"/>
<xsd:enumeration value="unknown"/>
<xsd:enumeration value="withheld"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="other:\w{2,}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
<xsd:attributeGroup name="BaseAttributesGroup">
<xsd:attribute name="id" type="xsd:string" use="required" form="qualified"/>
<xsd:attribute name="srsName" type="xsd:anyURI" use="optional"/>
<xsd:attribute name="srsDimension" type="xsd:positiveInteger" use="optional"/>
</xsd:attributeGroup>
<xsd:complexType name="T_LineString">
<xsd:sequence>
<xsd:group ref="StandardObjectProperties"/>
<xsd:choice>
<xsd:choice minOccurs="2" maxOccurs="unbounded">
<xsd:element ref="gml:pos"/>
<xsd:element ref="gml:pointProperty"/>
</xsd:choice>
<xsd:element ref="gml:posList"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref="BaseAttributesGroup"/>
</xsd:complexType>
<xsd:complexType name="T_pos">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="srsName" type="xsd:anyURI"/>
<xsd:attribute name="srsDimension" type="xsd:positiveInteger"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="T_posList">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="srsName" type="xsd:anyURI"/>
<xsd:attribute name="srsDimension" type="xsd:positiveInteger"/>
<xsd:attribute name="count" type="xsd:positiveInteger"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="T_LinearRing">
<xsd:choice>
<xsd:choice minOccurs="4" maxOccurs="unbounded">
<xsd:element ref="gml:pos"/>
<xsd:element ref="gml:pointProperty"/>
</xsd:choice>
<xsd:element ref="gml:posList"/>
</xsd:choice>
</xsd:complexType>
<xsd:complexType name="T_descriptionReference">
<xsd:attribute name="owns" type="xsd:boolean" use="required"/>
<xsd:attribute name="nilReason" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="T_identifier">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="codeSpace" type="xsd:anyURI" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="T_name">
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="codeSpace" type="xsd:anyURI" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="T_Polygon">
<xsd:sequence>
<xsd:group ref="StandardObjectProperties"/>
<xsd:sequence>
<xsd:element ref="gml:exterior" minOccurs="0"/>
<xsd:element ref="gml:interior" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:sequence>
<xsd:attributeGroup ref="BaseAttributesGroup"/>
</xsd:complexType>
<xsd:complexType name="T_exterior">
<xsd:sequence>
<xsd:element ref="gml:LinearRing"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="T_interior">
<xsd:sequence>
<xsd:element ref="gml:LinearRing"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="T_Point">
<xsd:sequence>
<xsd:group ref="StandardObjectProperties"/>
<xsd:element ref="gml:pos"/>
</xsd:sequence>
<xsd:attributeGroup ref="BaseAttributesGroup"/>
</xsd:complexType>
<xsd:complexType name="T_pointProperty">
<xsd:sequence>
<xsd:element ref="gml:Point"/>
</xsd:sequence>
<xsd:attribute name="nilReason" type="NilReasonType"/>
<xsd:attribute name="owns" type="xsd:boolean" default="false"/>
</xsd:complexType>
</xsd:schema>