1
|
<?xml version="1.0"?>
|
2
|
<xsd:schema
|
3
|
targetNamespace="http://www.opengis.net/wfs"
|
4
|
xmlns:wfs="http://www.opengis.net/wfs"
|
5
|
xmlns:ogc="http://www.opengis.net/ogc"
|
6
|
xmlns:gml="http://www.opengis.net/gml"
|
7
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
8
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
9
|
elementFormDefault="qualified">
|
10
|
|
11
|
<!-- ==============================================================
|
12
|
Includes and Imports
|
13
|
============================================================== -->
|
14
|
<xsd:import namespace="http://www.opengis.net/gml" schemaLocation="../../gml/2.1.2/feature.xsd"/>
|
15
|
<xsd:import namespace="http://www.opengis.net/ogc" schemaLocation="../../filter/1.0.0/filter.xsd"/>
|
16
|
|
17
|
<!-- ==============================================================
|
18
|
REQUEST MESSAGES
|
19
|
============================================================== -->
|
20
|
<xsd:element name="GetCapabilities" type="wfs:GetCapabilitiesType">
|
21
|
<xsd:annotation>
|
22
|
<xsd:documentation>
|
23
|
The GetCapapbilities element is used to request that a Web Feature
|
24
|
Service generate an XML document describing the organization
|
25
|
providing the service, the WFS operations that the service
|
26
|
supports, a list of feature types that the service can operate
|
27
|
on and list of filtering capabilities that the service support.
|
28
|
Such an XML document is called a capabilities document.
|
29
|
</xsd:documentation>
|
30
|
</xsd:annotation>
|
31
|
</xsd:element>
|
32
|
<xsd:element name="DescribeFeatureType" type="wfs:DescribeFeatureTypeType">
|
33
|
<xsd:annotation>
|
34
|
<xsd:documentation>
|
35
|
The DescribeFeatureType element is used to request that a Web
|
36
|
Feature Service generate a document describing one or more
|
37
|
feature types.
|
38
|
</xsd:documentation>
|
39
|
</xsd:annotation>
|
40
|
</xsd:element>
|
41
|
<xsd:element name="GetFeature" type="wfs:GetFeatureType">
|
42
|
<xsd:annotation>
|
43
|
<xsd:documentation>
|
44
|
The GetFeature element is used to request that a Web Feature
|
45
|
Service return feature instances of one or more feature types.
|
46
|
</xsd:documentation>
|
47
|
</xsd:annotation>
|
48
|
</xsd:element>
|
49
|
|
50
|
<!-- ==============================================================
|
51
|
RESPONSE MESSAGES
|
52
|
============================================================== -->
|
53
|
<xsd:element name="FeatureCollection"
|
54
|
type="wfs:FeatureCollectionType"
|
55
|
substitutionGroup="gml:_FeatureCollection">
|
56
|
<xsd:annotation>
|
57
|
<xsd:documentation>
|
58
|
This element is a container for the response to a GetFeature
|
59
|
or GetFeatureWithLock (WFS-transaction.xsd) request.
|
60
|
</xsd:documentation>
|
61
|
</xsd:annotation>
|
62
|
</xsd:element>
|
63
|
|
64
|
<!-- ==============================================================
|
65
|
COMMON ATTRIBUTES DOCUMENTATION
|
66
|
==============================================================
|
67
|
VERSION:
|
68
|
The version attribute is used to indicate to which version
|
69
|
of the Web Feature Service Implementation Specification a
|
70
|
request conforms.
|
71
|
|
72
|
SERVICE:
|
73
|
The service attribute is used to indicate which service
|
74
|
should process an operation. This attribute is particularly
|
75
|
useful in the case where a single server implements multiple
|
76
|
services (e.g. WMS, WFS, WCS, etc ...).
|
77
|
|
78
|
HANDLE:
|
79
|
The purpose of the handle attribute is to allow a client app
|
80
|
to associate a mnemonic name with a request for error handling
|
81
|
purposes. If a "handle" is specified, and an exception occurs,
|
82
|
a Web Feature Service may use the handle to identify the
|
83
|
offending element.
|
84
|
|
85
|
TYPENAME:
|
86
|
The typeName attribute is used to specify the name of the
|
87
|
feature type to be queried. The term "feature type" is a
|
88
|
term used by convention to refer to the container storing
|
89
|
feature instances. It does not mean type in the programmatic
|
90
|
sense. The typeName attribute should, instead, be thought
|
91
|
of as the feature name. -->
|
92
|
|
93
|
<!-- ==============================================================
|
94
|
TYPES
|
95
|
============================================================== -->
|
96
|
<!-- GETCAPABILITIES -->
|
97
|
<xsd:complexType name="GetCapabilitiesType">
|
98
|
<xsd:annotation>
|
99
|
<xsd:documentation>
|
100
|
This type defines the GetCapabilities operation. In response
|
101
|
to a GetCapabilities request, a Web Feature Service must
|
102
|
generate a capabilities XML document that validates against
|
103
|
the schemas defined in WFS-capabilities.xsd.
|
104
|
</xsd:documentation>
|
105
|
</xsd:annotation>
|
106
|
<xsd:attribute name="version"
|
107
|
type="xsd:string" use="optional" fixed="1.0.0"/>
|
108
|
<xsd:attribute name="service"
|
109
|
type="xsd:string" use="required" fixed="WFS"/>
|
110
|
</xsd:complexType>
|
111
|
<!-- DESCRIBEFEATURETYPE -->
|
112
|
<xsd:complexType name="DescribeFeatureTypeType">
|
113
|
<xsd:annotation>
|
114
|
<xsd:documentation>
|
115
|
The DescribeFeatureType operation allows a client application
|
116
|
to request that a Web Feature Service describe one or more
|
117
|
feature types. A Web Feature Service must be able to generate
|
118
|
feature descriptions as valid GML2 application schemas.
|
119
|
|
120
|
The schemas generated by the DescribeFeatureType operation can
|
121
|
be used by a client application to validate the output.
|
122
|
|
123
|
Feature instances within the WFS interface must be specified
|
124
|
using GML2. The schema of feature instances specified within
|
125
|
the WFS interface must validate against the feature schemas
|
126
|
generated by the DescribeFeatureType request.
|
127
|
</xsd:documentation>
|
128
|
</xsd:annotation>
|
129
|
<xsd:sequence>
|
130
|
<xsd:element name="TypeName" type="xsd:QName"
|
131
|
minOccurs="0" maxOccurs="unbounded">
|
132
|
<xsd:annotation>
|
133
|
<xsd:documentation>
|
134
|
The TypeName element is used to enumerate the feature types
|
135
|
to be described. If no TypeName elements are specified
|
136
|
then all features should be described.
|
137
|
</xsd:documentation>
|
138
|
</xsd:annotation>
|
139
|
</xsd:element>
|
140
|
</xsd:sequence>
|
141
|
<xsd:attribute name="version"
|
142
|
type="xsd:string" use="required" fixed="1.0.0"/>
|
143
|
<xsd:attribute name="service"
|
144
|
type="xsd:string" use="required" fixed="WFS"/>
|
145
|
<xsd:attribute name="outputFormat"
|
146
|
type="xsd:string" use="optional" default="XMLSCHEMA">
|
147
|
<xsd:annotation>
|
148
|
<xsd:documentation>
|
149
|
The outputFormat attribute is used to specify what schema
|
150
|
description language should be used to describe features.
|
151
|
The default value of XMLSCHEMA means that the Web Feature
|
152
|
Service must generate a GML2 application schema that can
|
153
|
be used to validate the GML2 output of a GetFeature request
|
154
|
or feature instances specified in Transaction operations.
|
155
|
</xsd:documentation>
|
156
|
</xsd:annotation>
|
157
|
</xsd:attribute>
|
158
|
</xsd:complexType>
|
159
|
<!-- GETFEATURE -->
|
160
|
<xsd:complexType name="GetFeatureType">
|
161
|
<xsd:annotation>
|
162
|
<xsd:documentation>
|
163
|
A GetFeature element contains one or more Query elements
|
164
|
that describe a query operation on one feature type. In
|
165
|
response to a GetFeature request, a Web Feature Service
|
166
|
must be able to generate a GML2 response that validates
|
167
|
using a schema generated by the DescribeFeatureType request.
|
168
|
A Web Feature Service may support other possibly non-XML
|
169
|
(and even binary) output formats as long as those formats
|
170
|
are advertised in the capabilities document.
|
171
|
</xsd:documentation>
|
172
|
</xsd:annotation>
|
173
|
<xsd:sequence>
|
174
|
<xsd:element ref="wfs:Query" maxOccurs="unbounded"/>
|
175
|
</xsd:sequence>
|
176
|
<xsd:attribute name="version"
|
177
|
type="xsd:string" use="required" fixed="1.0.0"/>
|
178
|
<xsd:attribute name="service"
|
179
|
type="xsd:string" use="required" fixed="WFS"/>
|
180
|
<xsd:attribute name="handle"
|
181
|
type="xsd:string" use="optional"/>
|
182
|
<xsd:attribute name="outputFormat"
|
183
|
type="xsd:string" use="optional" default="GML2">
|
184
|
<xsd:annotation>
|
185
|
<xsd:documentation>
|
186
|
The outputFormat attribute is used to specify the output
|
187
|
format that the Web Feature Service should generate in
|
188
|
response to a GetFeature or GetFeatureWithLock element.
|
189
|
The default value of GML2 indicates that the output is an
|
190
|
XML document that conforms to the Geography Markup Language
|
191
|
(GML) Implementation Specification V2.0.
|
192
|
|
193
|
Other values may be used to specify other formats as long
|
194
|
as those values are advertised in the capabilities document.
|
195
|
For example, the value WKB may be used to indicate that a
|
196
|
Well Known Binary format be used to encode the output.
|
197
|
</xsd:documentation>
|
198
|
</xsd:annotation>
|
199
|
</xsd:attribute>
|
200
|
<xsd:attribute name="maxFeatures" type="xsd:positiveInteger"
|
201
|
use="optional">
|
202
|
<xsd:annotation>
|
203
|
<xsd:documentation>
|
204
|
The maxFeatures attribute is used to specify the maximum
|
205
|
number of features that a GetFeature operation should
|
206
|
generate (regardless of the actual number of query hits).
|
207
|
</xsd:documentation>
|
208
|
</xsd:annotation>
|
209
|
</xsd:attribute>
|
210
|
</xsd:complexType>
|
211
|
<xsd:element name="Query" type="wfs:QueryType">
|
212
|
<xsd:annotation>
|
213
|
<xsd:documentation>
|
214
|
The Query element is used to describe a single query.
|
215
|
One or more Query elements can be specified inside a
|
216
|
GetFeature element so that multiple queries can be
|
217
|
executed in one request. The output from the various
|
218
|
queries are combined in a wfs:FeatureCollection element
|
219
|
to form the response to the request.
|
220
|
</xsd:documentation>
|
221
|
</xsd:annotation>
|
222
|
</xsd:element>
|
223
|
<xsd:complexType name="QueryType">
|
224
|
<xsd:annotation>
|
225
|
<xsd:documentation>
|
226
|
The Query element is of type QueryType.
|
227
|
</xsd:documentation>
|
228
|
</xsd:annotation>
|
229
|
<xsd:sequence>
|
230
|
<xsd:element ref="ogc:PropertyName" minOccurs="0" maxOccurs="unbounded">
|
231
|
<xsd:annotation>
|
232
|
<xsd:documentation>
|
233
|
The PropertyName element is used to specify one or more
|
234
|
properties of a feature whose values are to be retrieved
|
235
|
by a Web Feature Service.
|
236
|
|
237
|
While a Web Feature Service should endeavour to satisfy
|
238
|
the exact request specified, in some instance this may
|
239
|
not be possible. Specifically, a Web Feature Service
|
240
|
must generate a valid GML2 response to a Query operation.
|
241
|
The schema used to generate the output may include
|
242
|
properties that are mandatory. In order that the output
|
243
|
validates, these mandatory properties must be specified
|
244
|
in the request. If they are not, a Web Feature Service
|
245
|
may add them automatically to the Query before processing
|
246
|
it. Thus a client application should, in general, be
|
247
|
prepared to receive more properties than it requested.
|
248
|
|
249
|
Of course, using the DescribeFeatureType request, a client
|
250
|
application can determine which properties are mandatory
|
251
|
and request them in the first place.
|
252
|
</xsd:documentation>
|
253
|
</xsd:annotation>
|
254
|
</xsd:element>
|
255
|
<xsd:element ref="ogc:Filter" minOccurs="0" maxOccurs="1">
|
256
|
<xsd:annotation>
|
257
|
<xsd:documentation>
|
258
|
The Filter element is used to define spatial and/or non-spatial
|
259
|
constraints on query. Spatial constrains use GML2 to specify
|
260
|
the constraining geometry. A full description of the Filter
|
261
|
element can be found in the Filter Encoding Implementation
|
262
|
Specification.
|
263
|
</xsd:documentation>
|
264
|
</xsd:annotation>
|
265
|
</xsd:element>
|
266
|
</xsd:sequence>
|
267
|
<xsd:attribute name="handle"
|
268
|
type="xsd:string" use="optional"/>
|
269
|
<xsd:attribute name="typeName"
|
270
|
type="xsd:QName" use="required"/>
|
271
|
<xsd:attribute name="featureVersion"
|
272
|
type="xsd:string" use="optional">
|
273
|
<xsd:annotation>
|
274
|
<xsd:documentation>
|
275
|
For systems that implement versioning, the featureVersion
|
276
|
attribute is used to specify which version of a particular
|
277
|
feature instance is to be retrieved. A value of ALL means
|
278
|
that all versions should be retrieved. An integer value
|
279
|
'i', means that the ith version should be retrieve if it
|
280
|
exists or the most recent version otherwise.
|
281
|
</xsd:documentation>
|
282
|
</xsd:annotation>
|
283
|
</xsd:attribute>
|
284
|
</xsd:complexType>
|
285
|
<!-- RESPONSE TYPE -->
|
286
|
<xsd:complexType name="FeatureCollectionType">
|
287
|
<xsd:annotation>
|
288
|
<xsd:documentation>
|
289
|
This type defines a container for the response to a
|
290
|
GetFeature or GetFeatureWithLock request. If the
|
291
|
request is GetFeatureWithLock, the lockId attribute
|
292
|
must be populated. The lockId attribute can otherwise
|
293
|
be safely ignored.
|
294
|
</xsd:documentation>
|
295
|
</xsd:annotation>
|
296
|
<xsd:complexContent>
|
297
|
<xsd:extension base="gml:AbstractFeatureCollectionType">
|
298
|
<xsd:attribute name="lockId" type="xsd:string" use="optional">
|
299
|
<xsd:annotation>
|
300
|
<xsd:documentation>
|
301
|
The value of the lockId attribute is an identifier
|
302
|
that a Web Feature Service generates and which a
|
303
|
client application can use in subsequent operations
|
304
|
(such as a Transaction request) to reference the set
|
305
|
of locked features.
|
306
|
</xsd:documentation>
|
307
|
</xsd:annotation>
|
308
|
</xsd:attribute>
|
309
|
</xsd:extension>
|
310
|
</xsd:complexContent>
|
311
|
</xsd:complexType>
|
312
|
</xsd:schema>
|