Statistics
| Revision:

root / trunk / libraries / libGPE-GML / testdata / schemas / 2_1_2 / feature.xsd @ 11160

History | View | Annotate | Download (12.2 KB)

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