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:gml="http://www.opengis.net/gml"
6
   xmlns:ogc="http://www.opengis.net/ogc"
7
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
8
   elementFormDefault="qualified">
9

    
10
   <!-- Comments in this document may impose additional constraints
11
        beyond those codified in the schema syntax.  A conformant
12
        Web Feature Server must provide Capabilities XML that
13
           (1) validates against this schema
14
           (2) does not violate the constraints stated in
15
               comments herein. -->
16

    
17
   <!-- ==============================================================
18
        Imports ...
19
        ============================================================== -->
20
   <xsd:import namespace="http://www.opengis.net/ogc"
21
               schemaLocation="../../filter/1.0.0/filterCapabilities.xsd" />
22

    
23
   <!-- ==============================================================
24
        Global elements and attributes
25
        ============================================================== -->
26
   <!-- A descriptive narrative for more
27
        information about this server. -->
28
   <xsd:element name="Abstract" type="xsd:string"/>
29
   <!-- Elements containing text blocks indicating what 
30
        fees or access constraints are imposed by the 
31
        service provider on the service or data retrieved
32
        from the server. The reserved keyword "NONE" 
33
        indicates no constraint exists. -->
34
   <xsd:element name="AccessConstraints" type="xsd:string"/>
35
   <xsd:element name="Fees" type="xsd:string"/>
36
   <!-- Short words to help catalog searching.
37
        Currently, no controlled vocabulary has
38
        been defined. -->
39
   <xsd:element name="Keywords" type="xsd:string"/>
40
   <!-- The top-level HTTP URL of this service. 
41
        Typically the URL of a "home page" for
42
        the service.  See also the onlineResource
43
        attributes of <DCPType> children, below.
44
        Currently, no non-HTTP platforms have been
45
        specified. -->
46
   <xsd:element name="OnlineResource"/>
47
   <xsd:element name="SRS" type="xsd:string"/>
48
   <!-- A human-readable title to briefly identify
49
        this server in menus. -->
50
   <xsd:element name="Title" type="xsd:string"/>
51

    
52
   <xsd:element name="Query"  type="wfs:EmptyType"/>
53
   <xsd:element name="Insert" type="wfs:EmptyType"/>
54
   <xsd:element name="Update" type="wfs:EmptyType"/>
55
   <xsd:element name="Delete" type="wfs:EmptyType"/>
56
   <xsd:element name="Lock"   type="wfs:EmptyType"/>
57

    
58
   <!-- REDEFINE THIS ELEMENT AS NEEDED IN YOUR XML  -->
59
   <xsd:element name="VendorSpecificCapabilities" type="xsd:string"/>
60

    
61
   <!-- ==============================================================
62
        Root element
63
        ============================================================== -->
64
   <!-- The parent element of the Capabilities document includes as
65
        children a Service element with general information about the
66
        server, a Capability element with specific information about
67
        the kinds of functionality offered by the server, a FeatureTypeList
68
        element defining the list of all feature types available from
69
        this server and a FeatureCapabilities element describing the
70
        filter capabilities of the server. -->
71
   <xsd:element name="WFS_Capabilities" type="wfs:WFS_CapabilitiesType"/>
72

    
73
   <!-- ==============================================================
74
        Types
75
        ============================================================== -->
76
   <xsd:complexType name="WFS_CapabilitiesType">
77
      <xsd:sequence>
78
         <!-- The Service element provides metadata for
79
              the service as a whole. -->
80
         <xsd:element name="Service" type="wfs:ServiceType"/>
81

    
82
         <!-- A Capability lists available request
83
              types, how exceptions may be reported, and
84
              whether any vendor-specific capabilities
85
              are defined.  It also lists all the
86
              feature types available from this feature 
87
              server. -->
88
         <xsd:element name="Capability" type="wfs:CapabilityType"/>
89
         <xsd:element name="FeatureTypeList" type="wfs:FeatureTypeListType"/>
90
         <xsd:element ref="ogc:Filter_Capabilities" />
91
      </xsd:sequence>
92

    
93
      <!-- The version attribute specifies the specification revision
94
           to which this schema applies.  Its format is one,t two or three
95
           integers separated by periods: "x", or "x.y", or "x.y.z",
96
           with the most significant number appearing first.  Future
97
           revisions are guaranteed to be numbered in monotonically
98
           increasing fashion, though gaps may appear in the sequence. -->
99
      <xsd:attribute name="version"
100
                     type="xsd:string" fixed="1.0.0"/>
101

    
102
      <!-- The updateSequence attribute is a sequence number for
103
           managing propagation of the contents of this document.
104
           For example, if a Feature Server adds some data feature
105
           types it can increment the update sequence to inform
106
           catalog servers that their previously cached versions
107
           are now stale. The format is a positive integer. -->
108
      <xsd:attribute name="updateSequence"
109
                     type="xsd:nonNegativeInteger" default="0"/>
110
   </xsd:complexType>
111

    
112
   <xsd:complexType name="ServiceType">
113
      <xsd:sequence>
114
         <xsd:element name="Name" type="xsd:string"/>
115
         <xsd:element ref="wfs:Title"/>
116
         <xsd:element ref="wfs:Abstract" minOccurs="0"/>
117
         <xsd:element ref="wfs:Keywords" minOccurs="0"/>
118
         <xsd:element ref="wfs:OnlineResource"/>
119
         <xsd:element ref="wfs:Fees" minOccurs="0"/>
120
         <xsd:element ref="wfs:AccessConstraints" minOccurs="0"/>
121
      </xsd:sequence>
122
   </xsd:complexType>
123

    
124
   <xsd:complexType name="CapabilityType">
125
      <xsd:sequence>
126
         <xsd:element name="Request" type="wfs:RequestType"/>
127
         <!-- The optional VendorSpecificCapabilities element lists any
128
              capabilities unique to a particular server.  Because the
129
              information is not known a priori, it cannot be constrained
130
              by this particular schema document.  A vendor-specific schema
131
              fragment must be supplied at the start of the XML capabilities
132
              document, after the reference to the general WFS_Capabilities
133
              schema. -->
134
         <xsd:element ref="wfs:VendorSpecificCapabilities" minOccurs="0"/>
135
      </xsd:sequence>
136
   </xsd:complexType>
137
   <xsd:complexType name="FeatureTypeListType">
138
      <xsd:sequence>
139
         <xsd:element name="Operations"
140
                      type="wfs:OperationsType" minOccurs="0"/>
141
         <xsd:element name="FeatureType"
142
                      type="wfs:FeatureTypeType" maxOccurs="unbounded"/>
143
      </xsd:sequence>
144
   </xsd:complexType>
145

    
146
   <!-- Available WFS-defined request types are listed here. At
147
        least one of the values is required, but more than one
148
        may be given. -->
149
   <xsd:complexType name="RequestType">
150
      <xsd:choice maxOccurs="unbounded">
151
         <xsd:element name="GetCapabilities"
152
                      type="wfs:GetCapabilitiesType"/>
153
         <xsd:element name="DescribeFeatureType"
154
                      type="wfs:DescribeFeatureTypeType"/>
155
         <xsd:element name="Transaction"
156
                      type="wfs:TransactionType"/>
157
         <xsd:element name="GetFeature"
158
                      type="wfs:GetFeatureTypeType"/>
159
         <xsd:element name="GetFeatureWithLock"
160
                      type="wfs:GetFeatureTypeType"/>
161
         <xsd:element name="LockFeature"
162
                      type="wfs:LockFeatureTypeType"/>
163
      </xsd:choice>
164
   </xsd:complexType>
165
   <xsd:complexType name="GetCapabilitiesType">
166
      <xsd:sequence>
167
         <xsd:element name="DCPType"
168
                      type="wfs:DCPTypeType" maxOccurs="unbounded"/>
169
      </xsd:sequence>
170
   </xsd:complexType>
171
   <xsd:complexType name="DescribeFeatureTypeType">
172
      <xsd:sequence>
173
         <xsd:element name="SchemaDescriptionLanguage"
174
                      type="wfs:SchemaDescriptionLanguageType"/>
175
         <xsd:element name="DCPType"
176
                      type="wfs:DCPTypeType" maxOccurs="unbounded"/>
177
      </xsd:sequence>
178
   </xsd:complexType>
179
   <xsd:complexType name="TransactionType">
180
      <xsd:sequence>
181
         <xsd:element name="DCPType"
182
                      type="wfs:DCPTypeType" maxOccurs="unbounded"/>
183
      </xsd:sequence>
184
   </xsd:complexType>
185
   <xsd:complexType name="GetFeatureTypeType">
186
      <xsd:sequence>
187
         <xsd:element name="ResultFormat"
188
                      type="wfs:ResultFormatType"/>
189
         <xsd:element name="DCPType"
190
                      type="wfs:DCPTypeType" maxOccurs="unbounded"/>
191
      </xsd:sequence>
192
   </xsd:complexType>
193
   <xsd:complexType name="LockFeatureTypeType">
194
      <xsd:sequence>
195
         <xsd:element name="DCPType"
196
                      type="wfs:DCPTypeType" maxOccurs="unbounded"/>
197
      </xsd:sequence>
198
   </xsd:complexType>
199

    
200
   <!-- Available Distributed Computing Platforms (DCPs) are
201
        listed here.  At present, only HTTP is defined. -->
202
   <xsd:complexType name="DCPTypeType">
203
      <xsd:sequence>
204
         <xsd:element name="HTTP" type="wfs:HTTPType"/>
205
      </xsd:sequence>
206
   </xsd:complexType>
207

    
208
   <!-- A list of feature types available from
209
        this server.  The following table
210
        specifies the number and source of the
211
        various elements that are available for
212
        describing a feature type.
213
   
214
        element             number    comments
215
        =================   =======   ======================================
216
        Name                    1     this is the Name of the feature type
217
   
218
        Title                 0/1     an optional Meaningful title for the
219
                                      feature type  (e.g. "Ontario Roads"
220
                                      for ROADL_1M")
221

    
222
        Abstract              0/1     optional; no Default
223
   
224
        Keywords              0/1     optional; no Default
225
   
226
        SRS                     1     the SRS that should be used
227
                                      when specifying the state of
228
                                      the feature
229

    
230
        Operations            0/1     a list of available operations for
231
                                      the feature type
232
      
233
        LatLongBoundingBox      1+    bounding box(s) of data
234
      
235
        MetadataURL           0/1+    optional; no default
236
   -->
237
   <xsd:complexType name="FeatureTypeType">
238
      <xsd:sequence>
239
         <xsd:element name="Name" type="xsd:QName"/>
240
         <xsd:element ref="wfs:Title" minOccurs="0"/>
241
         <xsd:element ref="wfs:Abstract" minOccurs="0"/>
242
         <xsd:element ref="wfs:Keywords" minOccurs="0"/>
243
         <xsd:element ref="wfs:SRS"/>
244
         <xsd:element name="Operations"
245
                      type="wfs:OperationsType" minOccurs="0"/>
246
         <xsd:element name="LatLongBoundingBox"
247
                      type="wfs:LatLongBoundingBoxType"
248
                      minOccurs="0" maxOccurs="unbounded"/>
249
         <xsd:element name="MetadataURL"
250
                      type="wfs:MetadataURLType"
251
                      minOccurs="0" maxOccurs="unbounded"/>
252
      </xsd:sequence>
253
   </xsd:complexType>
254
   <xsd:complexType name="GetType">
255
      <xsd:attribute name="onlineResource" type="xsd:string" use="required"/>
256
   </xsd:complexType>
257

    
258
   <!-- Available HTTP request methods. -->
259
   <xsd:complexType name="HTTPType">
260
      <xsd:choice maxOccurs="unbounded">
261
         <!-- HTTP request methods.  The onlineResourc attribute
262
              indicates the URL prefix for HTTP GET requests
263
              (everything before the question mark and query string:
264
              http://hostname[:port]/path/scriptname); for HTTP POST
265
              requests, onlineResource is the complete URL. -->
266
         <xsd:element name="Get" type="wfs:GetType"/>
267
         <xsd:element name="Post" type="wfs:PostType"/>
268
      </xsd:choice>
269
   </xsd:complexType>
270

    
271
   <!-- The LatLongBoundingBox element is used to indicate the edges of 
272
        an enclosing rectangle in the SRS of the associated feature type.
273
        Its purpose is to facilitate geographic searches  by indicating
274
        where instances of the particular feature type exist.  Since multiple
275
        LatLongBoundingBoxes can be specified, a WFS can indicate where 
276
        various clusters of data may exist.  This knowledge aids client 
277
        applications by letting them know where they should query in order 
278
        to have a high probability of finding data. -->
279
   <xsd:complexType name="LatLongBoundingBoxType">
280
      <xsd:attribute name="minx" type="xsd:string" use="required"/>
281
      <xsd:attribute name="miny" type="xsd:string" use="required"/>
282
      <xsd:attribute name="maxx" type="xsd:string" use="required"/>
283
      <xsd:attribute name="maxy" type="xsd:string" use="required"/>
284
   </xsd:complexType>
285

    
286
   <!-- A Web Feature Server MAY use zero or more MetadataURL
287
        elements to offer detailed, standardized metadata about
288
        the data underneath a particular feature type.  The type
289
        attribute indicates the standard to which the metadata
290
        complies; the format attribute indicates how the metadata is
291
        structured.  Two types are defined at present:
292
        'TC211' = ISO TC211 19115; 
293
        'FGDC'  = FGDC CSDGM. -->
294
   <xsd:complexType name="MetadataURLType">
295
      <xsd:simpleContent>
296
         <xsd:extension base="xsd:string">
297
            <xsd:attribute name="type" use="required">
298
               <xsd:simpleType>
299
                  <xsd:restriction base="xsd:NMTOKEN">
300
                     <xsd:enumeration value="TC211"/>
301
                     <xsd:enumeration value="FGDC"/>
302
                  </xsd:restriction>
303
               </xsd:simpleType>
304
            </xsd:attribute>
305
            <xsd:attribute name="format" use="required">
306
               <xsd:simpleType>
307
                  <xsd:restriction base="xsd:NMTOKEN">
308
                     <xsd:enumeration value="XML"/>
309
                     <xsd:enumeration value="SGML"/>
310
                     <xsd:enumeration value="TXT"/>
311
                  </xsd:restriction>
312
               </xsd:simpleType>
313
            </xsd:attribute>
314
         </xsd:extension>
315
      </xsd:simpleContent>
316
   </xsd:complexType>
317
   <xsd:complexType name="OperationsType">
318
      <xsd:choice maxOccurs="unbounded">
319
         <xsd:element ref="wfs:Insert"/>
320
         <xsd:element ref="wfs:Update"/>
321
         <xsd:element ref="wfs:Delete"/>
322
         <xsd:element ref="wfs:Query"/>
323
         <xsd:element ref="wfs:Lock"/>
324
      </xsd:choice>
325
   </xsd:complexType>
326
   <xsd:complexType name="PostType">
327
      <xsd:attribute name="onlineResource" type="xsd:string" use="required"/>
328
   </xsd:complexType>
329

    
330
   <!-- The ResultFormatType type defines the output formats that the
331
        web feature server can generate.  The mandatory format "GML2"
332
        must always be available.  Individual servers can define
333
        additional elements representing other output formats. -->
334
   <xsd:element name="GML2" type="wfs:EmptyType"/>
335
   <!-- WFS schema isn't enough, so we're adding these in for GeoServer as
336
        output types, so that our clients can validate their caps docs. -->
337
   <xsd:element name="GML2-GZIP" type="wfs:EmptyType"/>
338
   <xsd:element name="SHAPE-ZIP" type="wfs:EmptyType"/>
339
   <xsd:complexType name="ResultFormatType">
340
      <xsd:sequence maxOccurs="unbounded">
341
         <xsd:element ref="wfs:GML2"/>
342
         <xsd:element ref="wfs:GML2-GZIP" minOccurs="0"/>
343
         <xsd:element ref="wfs:SHAPE-ZIP" minOccurs="0"/>
344
      </xsd:sequence>
345
   </xsd:complexType>
346

    
347
   <!-- The SchemaDescriptionLanguageType type defines the schema languages
348
        that a feature server is capable of using to describe the schema
349
        of a feature.  Individual servers can define additional elements
350
        representing other schema languages but XMLSCHEMA must always
351
        be defined. -->
352
   <xsd:element name="XMLSCHEMA" type="wfs:EmptyType"/>
353
   <xsd:complexType name="SchemaDescriptionLanguageType">
354
      <xsd:sequence maxOccurs="unbounded">
355
         <xsd:element ref="wfs:XMLSCHEMA"/>
356
      </xsd:sequence>
357
   </xsd:complexType>
358
   <xsd:complexType name="EmptyType" />
359
</xsd:schema>
(3-3/4)