Project

General

Profile

1
<?xml version="1.0" encoding="UTF-8"?>
2
<schema targetNamespace="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" elementFormDefault="qualified" version="2.1.2">
3
  <annotation>
4
    <appinfo>feature.xsd v2.1.2 2002-07</appinfo>
5
    <documentation xml:lang="en">
6
      GML Feature schema. Copyright (c) 2002 OGC, All Rights Reserved.
7
    </documentation>
8
  </annotation>
9
  <!-- include constructs from the GML Geometry schema -->
10
  <include schemaLocation="geometry.xsd"/>
11
  <!-- bring in the XLink namespace -->
12
 <import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlinks.xsd"/>
13

    
14
  
15
  <!-- ==============================================================
16
       global declarations
17
  =================================================================== -->
18
  <element name="_Feature" type="gml:AbstractFeatureType" abstract="true"/>
19
  <element name="_FeatureCollection" type="gml:AbstractFeatureCollectionType" abstract="true" substitutionGroup="gml:_Feature"/>
20
  <element name="featureMember" type="gml:FeatureAssociationType"/>
21
  <!-- some basic geometric properties of features -->
22
  <element name="_geometryProperty" type="gml:GeometryAssociationType" abstract="true"/>
23
  <element name="geometryProperty" type="gml:GeometryAssociationType"/>
24
  <element name="boundedBy" type="gml:BoundingShapeType"/>
25
  <element name="pointProperty" type="gml:PointPropertyType" substitutionGroup="gml:_geometryProperty"/>
26
  <element name="polygonProperty" type="gml:PolygonPropertyType" substitutionGroup="gml:_geometryProperty"/>
27
  <element name="lineStringProperty" type="gml:LineStringPropertyType" substitutionGroup="gml:_geometryProperty"/>
28
  <element name="multiPointProperty" type="gml:MultiPointPropertyType" substitutionGroup="gml:_geometryProperty"/>
29
  <element name="multiLineStringProperty" type="gml:MultiLineStringPropertyType" substitutionGroup="gml:_geometryProperty"/>
30
  <element name="multiPolygonProperty" type="gml:MultiPolygonPropertyType" substitutionGroup="gml:_geometryProperty"/>
31
  <element name="multiGeometryProperty" type="gml:MultiGeometryPropertyType" substitutionGroup="gml:_geometryProperty"/>
32
  <!-- common aliases for geometry properties -->
33
  <element name="location" type="gml:PointPropertyType" substitutionGroup="gml:pointProperty"/>
34
  <element name="centerOf" type="gml:PointPropertyType" substitutionGroup="gml:pointProperty"/>
35
  <element name="position" type="gml:PointPropertyType" substitutionGroup="gml:pointProperty"/>
36
  <element name="extentOf" type="gml:PolygonPropertyType" substitutionGroup="gml:polygonProperty"/>
37
  <element name="coverage" type="gml:PolygonPropertyType" substitutionGroup="gml:polygonProperty"/>
38
  <element name="edgeOf" type="gml:LineStringPropertyType" substitutionGroup="gml:lineStringProperty"/>
39
  <element name="centerLineOf" type="gml:LineStringPropertyType" substitutionGroup="gml:lineStringProperty"/>
40
  <element name="multiLocation" type="gml:MultiPointPropertyType" substitutionGroup="gml:multiPointProperty"/>
41
  <element name="multiCenterOf" type="gml:MultiPointPropertyType" substitutionGroup="gml:multiPointProperty"/>
42
  <element name="multiPosition" type="gml:MultiPointPropertyType" substitutionGroup="gml:multiPointProperty"/>
43
  <element name="multiCenterLineOf" type="gml:MultiLineStringPropertyType" substitutionGroup="gml:multiLineStringProperty"/>
44
  <element name="multiEdgeOf" type="gml:MultiLineStringPropertyType" substitutionGroup="gml:multiLineStringProperty"/>
45
  <element name="multiCoverage" type="gml:MultiPolygonPropertyType" substitutionGroup="gml:multiPolygonProperty"/>
46
  <element name="multiExtentOf" type="gml:MultiPolygonPropertyType" substitutionGroup="gml:multiPolygonProperty"/>
47
  <!-- common feature descriptors -->
48
  <element name="description" type="string"/>
49
  <element name="name" type="string"/>
50
  <!-- ==============================================================
51
       abstract supertypes
52
  =================================================================== -->
53
  <complexType name="AbstractFeatureType" abstract="true">
54
    <annotation>
55
      <documentation>
56
        An abstract feature provides a set of common properties. A concrete 
57
        feature type must derive from this type and specify additional 
58
        properties in an application schema. A feature may optionally 
59
        possess an identifying attribute ('fid').
60
      </documentation>
61
    </annotation>
62
    <sequence>
63
      <element ref="gml:description" minOccurs="0"/>
64
      <element ref="gml:name" minOccurs="0"/>
65
      <element ref="gml:boundedBy" minOccurs="0"/>
66
      <!-- additional properties must be specified in an application schema -->
67
    </sequence>
68
    <attribute name="fid" type="ID" use="optional"/>
69
  </complexType>
70
  <complexType name="AbstractFeatureCollectionBaseType" abstract="true">
71
    <annotation>
72
      <documentation>
73
        This abstract base type just makes the boundedBy element mandatory 
74
        for a feature collection.
75
      </documentation>
76
    </annotation>
77
    <complexContent>
78
      <restriction base="gml:AbstractFeatureType">
79
        <sequence>
80
          <element ref="gml:description" minOccurs="0"/>
81
          <element ref="gml:name" minOccurs="0"/>
82
          <element ref="gml:boundedBy"/>
83
        </sequence>
84
        <attribute name="fid" type="ID" use="optional"/>
85
      </restriction>
86
    </complexContent>
87
  </complexType>
88
  <complexType name="AbstractFeatureCollectionType" abstract="true">
89
    <annotation>
90
      <documentation>
91
        A feature collection contains zero or more featureMember elements.
92
      </documentation>
93
    </annotation>
94
    <complexContent>
95
      <extension base="gml:AbstractFeatureCollectionBaseType">
96
        <sequence>
97
          <element ref="gml:featureMember" minOccurs="0" maxOccurs="unbounded"/>
98
        </sequence>
99
      </extension>
100
    </complexContent>
101
  </complexType>
102
  <complexType name="GeometryPropertyType">
103
		<annotation>
104
			<documentation>
105
        A simple geometry property encapsulates a geometry element.
106
        Alternatively, it can function as a pointer (simple-type link) 
107
        that refers to a remote geometry element.
108
      </documentation>
109
		</annotation>
110
		<sequence minOccurs="0">
111
			<element ref="gml:_Geometry"/>
112
		</sequence>
113
		<attributeGroup ref="xlink:simpleLink"/>
114
             <attribute ref="gml:remoteSchema" use="optional"/>
115
  </complexType>
116
  <complexType name="FeatureAssociationType">
117
    <annotation>
118
      <documentation>
119
        An instance of this type (e.g. a featureMember) can either 
120
        enclose or point to a feature (or feature collection); this 
121
        type can be restricted in an application schema to allow only 
122
        specified features as valid participants in the association. 
123
        When serving as a simple link that references a remote feature 
124
        instance, the value of the gml:remoteSchema attribute can be 
125
        used to locate a schema fragment that constrains the target 
126
        instance.
127
      </documentation>
128
    </annotation>
129
    <sequence minOccurs="0">
130
      <element ref="gml:_Feature"/>
131
    </sequence>
132
    <attributeGroup ref="xlink:simpleLink"/>
133
    <attribute ref="gml:remoteSchema" use="optional"/>
134
  </complexType>
135
  <complexType name="BoundingShapeType">
136
    <annotation>
137
      <documentation>
138
        Bounding shapes--a Box or a null element are currently allowed.
139
      </documentation>
140
    </annotation>
141
    <sequence>
142
      <choice>
143
        <element ref="gml:Box"/>
144
        <element name="null" type="gml:NullType"/>
145
      </choice>
146
    </sequence>
147
  </complexType>
148
  <!-- ==============================================================
149
       geometry properties
150
  =================================================================== -->
151
  <complexType name="PointPropertyType">
152
    <annotation>
153
      <documentation>
154
        Encapsulates a single point to represent position, location, or 
155
        centerOf properties.
156
      </documentation>
157
    </annotation>
158
    <complexContent>
159
      <restriction base="gml:GeometryAssociationType">
160
        <sequence minOccurs="0">
161
          <element ref="gml:Point"/>
162
        </sequence>
163
        <attributeGroup ref="xlink:simpleLink"/>
164
        <attribute ref="gml:remoteSchema" use="optional"/>
165
      </restriction>
166
    </complexContent>
167
  </complexType>
168
  <complexType name="PolygonPropertyType">
169
    <annotation>
170
      <documentation>
171
        Encapsulates a single polygon to represent coverage or extentOf 
172
        properties.
173
      </documentation>
174
    </annotation>
175
    <complexContent>
176
      <restriction base="gml:GeometryAssociationType">
177
        <sequence minOccurs="0">
178
          <element ref="gml:Polygon"/>
179
        </sequence>
180
        <attributeGroup ref="xlink:simpleLink"/>
181
        <attribute ref="gml:remoteSchema" use="optional"/>
182
      </restriction>
183
    </complexContent>
184
  </complexType>
185
  <complexType name="LineStringPropertyType">
186
    <annotation>
187
      <documentation>
188
        Encapsulates a single LineString to represent centerLineOf or 
189
        edgeOf properties.
190
      </documentation>
191
    </annotation>
192
    <complexContent>
193
      <restriction base="gml:GeometryAssociationType">
194
        <sequence minOccurs="0">
195
          <element ref="gml:LineString"/>
196
        </sequence>
197
        <attributeGroup ref="xlink:simpleLink"/>
198
        <attribute ref="gml:remoteSchema" use="optional"/>
199
      </restriction>
200
    </complexContent>
201
  </complexType>
202
  <complexType name="MultiPointPropertyType">
203
    <annotation>
204
      <documentation>
205
        Encapsulates a MultiPoint element to represent the following 
206
        discontiguous geometric properties: multiLocation, multiPosition, 
207
        multiCenterOf.
208
      </documentation>
209
    </annotation>
210
    <complexContent>
211
      <restriction base="gml:GeometryAssociationType">
212
        <sequence minOccurs="0">
213
          <element ref="gml:MultiPoint"/>
214
        </sequence>
215
        <attributeGroup ref="xlink:simpleLink"/>
216
        <attribute ref="gml:remoteSchema" use="optional"/>
217
      </restriction>
218
    </complexContent>
219
  </complexType>
220
  <complexType name="MultiLineStringPropertyType">
221
    <annotation>
222
      <documentation>
223
        Encapsulates a MultiLineString element to represent the following 
224
        discontiguous geometric properties: multiEdgeOf, multiCenterLineOf.
225
      </documentation>
226
    </annotation>
227
    <complexContent>
228
      <restriction base="gml:GeometryAssociationType">
229
        <sequence minOccurs="0">
230
          <element ref="gml:MultiLineString"/>
231
        </sequence>
232
        <attributeGroup ref="xlink:simpleLink"/>
233
        <attribute ref="gml:remoteSchema" use="optional"/>
234
      </restriction>
235
    </complexContent>
236
  </complexType>
237
  <complexType name="MultiPolygonPropertyType">
238
    <annotation>
239
      <documentation>
240
        Encapsulates a MultiPolygon to represent the following discontiguous 
241
        geometric properties: multiCoverage, multiExtentOf.
242
      </documentation>
243
    </annotation>
244
    <complexContent>
245
      <restriction base="gml:GeometryAssociationType">
246
        <sequence minOccurs="0">
247
          <element ref="gml:MultiPolygon"/>
248
        </sequence>
249
        <attributeGroup ref="xlink:simpleLink"/>
250
        <attribute ref="gml:remoteSchema" use="optional"/>
251
      </restriction>
252
    </complexContent>
253
  </complexType>
254
  <complexType name="MultiGeometryPropertyType">
255
    <annotation>
256
      <documentation>Encapsulates a MultiGeometry element.</documentation>
257
    </annotation>
258
    <complexContent>
259
      <restriction base="gml:GeometryAssociationType">
260
        <sequence minOccurs="0">
261
          <element ref="gml:MultiGeometry"/>
262
        </sequence>
263
        <attributeGroup ref="xlink:simpleLink"/>
264
        <attribute ref="gml:remoteSchema" use="optional"/>
265
      </restriction>
266
    </complexContent>
267
  </complexType>
268
  <simpleType name="NullType">
269
    <annotation>
270
      <documentation>
271
        If a bounding shape is not provided for a feature collection, 
272
        explain why. Allowable values are:
273
        innapplicable - the features do not have geometry
274
        unknown - the boundingBox cannot be computed
275
        unavailable - there may be a boundingBox but it is not divulged
276
        missing - there are no features
277
      </documentation>
278
    </annotation>
279
    <restriction base="string">
280
      <enumeration value="inapplicable"/>
281
      <enumeration value="unknown"/>
282
      <enumeration value="unavailable"/>
283
      <enumeration value="missing"/>
284
    </restriction>
285
  </simpleType>
286
</schema>
(4-4/7)