Project

General

Profile

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>
(2-2/4)