source: RevitalizationWS/schemas/csw/trunk/src/main/resources/CSW-discovery.xsd @ 7385

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/RevitalizationWS/schemas/csw/trunk/src/main/resources/CSW-discovery.xsd@7385
Revision 7385, 23.3 KB checked in by mnagni, 9 years ago (diff)

version 2.0.2 of the OGC CSW library

  • Property svn:mime-type set to text/plain
Line 
1<?xml version="1.0"?>
2<xsd:schema
3   id="csw-discovery"
4   targetNamespace="http://www.opengis.net/cat/csw/2.0.2"
5   xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
6   xmlns:ogc="http://www.opengis.net/ogc"
7   xmlns:ows="http://www.opengis.net/ows"
8   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9   elementFormDefault="qualified"
10   version="2.0.2 2010-01-22">
11
12   <xsd:annotation>
13      <xsd:appinfo>
14         <dc:identifier xmlns:dc="http://purl.org/dc/elements/1.1/">http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd</dc:identifier>
15      </xsd:appinfo>
16      <xsd:documentation xml:lang="en">
17    This schema defines the request and response messages for the CSW-Discovery operations specified in clause 10 of OGC-07-066.
18
19    CSW is an OGC Standard.
20    Copyright (c) 2004,2010 Open Geospatial Consortium, Inc. All Rights Reserved.
21    To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
22      </xsd:documentation>
23   </xsd:annotation>
24
25   <xsd:include schemaLocation="record.xsd"/>
26
27   <xsd:import namespace="http://www.opengis.net/ows" schemaLocation="http://schemas.opengis.net/ows/1.0.0/owsAll.xsd"/>
28
29   <xsd:import namespace="http://www.opengis.net/ogc" schemaLocation="http://schemas.opengis.net/filter/1.1.0/filter.xsd"/>
30
31   <xsd:complexType name="RequestBaseType" id="RequestBaseType" abstract="true">
32      <xsd:annotation>
33         <xsd:documentation>
34            Base type for all request messages except GetCapabilities. The
35            attributes identify the relevant service type and version.
36         </xsd:documentation>
37      </xsd:annotation>
38      <xsd:attribute name="service" type="ows:ServiceType"
39                     use="required" fixed="CSW"/>
40      <xsd:attribute name="version" type="ows:VersionType"
41                     use="required" fixed="2.0.2"/>
42   </xsd:complexType>
43
44   <xsd:element name="GetCapabilities" id="GetCapabilities"
45                type="csw:GetCapabilitiesType"/>
46   <xsd:complexType name="GetCapabilitiesType" id="GetCapabilitiesType">
47      <xsd:annotation>
48         <xsd:documentation>
49            Request for a description of service capabilities. See OGC 05-008
50            for more information.
51         </xsd:documentation>
52      </xsd:annotation>
53      <xsd:complexContent>
54         <xsd:extension base="ows:GetCapabilitiesType">
55            <xsd:attribute name="service" type="ows:ServiceType" use="optional"
56               default="http://www.opengis.net/cat/csw"/>
57         </xsd:extension>
58      </xsd:complexContent>
59   </xsd:complexType>
60   <xsd:element name="Capabilities" id="Capabilities"
61      type="csw:CapabilitiesType"/>
62   <xsd:complexType name="CapabilitiesType" id="CapabilitiesType">
63      <xsd:annotation>
64         <xsd:documentation>This type extends ows:CapabilitiesBaseType defined in OGC-05-008
65         to include information about supported OGC filter components. A
66         profile may extend this type to describe additional capabilities.</xsd:documentation>
67      </xsd:annotation>
68      <xsd:complexContent>
69         <xsd:extension base="ows:CapabilitiesBaseType">
70            <xsd:sequence>
71               <xsd:element ref="ogc:Filter_Capabilities"/>
72            </xsd:sequence>
73         </xsd:extension>
74      </xsd:complexContent>
75   </xsd:complexType>
76   <xsd:element name="DescribeRecord" type="csw:DescribeRecordType"
77      id="DescribeRecord"/>
78   <xsd:complexType name="DescribeRecordType" id="DescribeRecordType">
79      <xsd:annotation>
80         <xsd:documentation xml:lang="en">This request allows a user to discover elements of the
81         information model supported by the catalogue. If no TypeName
82         elements are included, then all of the schemas for the
83         information model must be returned.
84     
85         schemaLanguage - preferred schema language
86                          (W3C XML Schema by default)
87         outputFormat - preferred output format (application/xml by default)</xsd:documentation>
88      </xsd:annotation>
89      <xsd:complexContent>
90         <xsd:extension base="csw:RequestBaseType">
91            <xsd:sequence>
92               <xsd:element name="TypeName" type="xsd:QName" minOccurs="0"
93                  maxOccurs="unbounded"/>
94            </xsd:sequence>
95            <xsd:attribute name="outputFormat" type="xsd:string" use="optional"
96               default="application/xml"/>
97            <xsd:attribute name="schemaLanguage" type="xsd:anyURI"
98               use="optional" default="http://www.w3.org/XML/Schema"/>
99         </xsd:extension>
100      </xsd:complexContent>
101   </xsd:complexType>
102   <xsd:element name="DescribeRecordResponse" id="DescribeRecordResponse"
103      type="csw:DescribeRecordResponseType"/>
104   <xsd:complexType name="DescribeRecordResponseType"
105      id="DescribeRecordResponseType">
106      <xsd:annotation>
107         <xsd:documentation xml:lang="en">The response contains a list of matching schema components
108         in the requested schema language.</xsd:documentation>
109      </xsd:annotation>
110      <xsd:sequence>
111         <xsd:element name="SchemaComponent" type="csw:SchemaComponentType"
112            minOccurs="0" maxOccurs="unbounded"/>
113      </xsd:sequence>
114   </xsd:complexType>
115   <xsd:complexType name="SchemaComponentType" mixed="true"
116      id="SchemaComponentType">
117      <xsd:annotation>
118         <xsd:documentation xml:lang="en">A schema component includes a schema fragment (type
119         definition) or an entire schema from some target namespace;
120         the schema language is identified by URI. If the component
121         is a schema fragment its parent MUST be referenced (parentSchema).</xsd:documentation>
122      </xsd:annotation>
123      <xsd:sequence>
124         <xsd:any namespace="##any" processContents="lax"/>
125      </xsd:sequence>
126      <xsd:attribute name="targetNamespace" type="xsd:anyURI" use="required"/>
127      <xsd:attribute name="parentSchema" type="xsd:anyURI" use="optional"/>
128      <xsd:attribute name="schemaLanguage" type="xsd:anyURI" use="required"/>
129   </xsd:complexType>
130   <xsd:element name="GetRecords" type="csw:GetRecordsType" id="GetRecords"/>
131   <xsd:complexType name="GetRecordsType" id="GetRecordsType">
132      <xsd:annotation>
133         <xsd:documentation xml:lang="en">
134         The principal means of searching the catalogue. The matching
135         catalogue entries may be included with the response. The client
136         may assign a requestId (absolute URI). A distributed search is
137         performed if the DistributedSearch element is present and the
138         catalogue is a member of a federation. Profiles may allow
139         alternative query expressions.</xsd:documentation>
140      </xsd:annotation>
141      <xsd:complexContent>
142         <xsd:extension base="csw:RequestBaseType">
143            <xsd:sequence>
144               <xsd:element name="DistributedSearch"
145                  type="csw:DistributedSearchType" minOccurs="0"/>
146               <xsd:element name="ResponseHandler" type="xsd:anyURI"
147                  minOccurs="0" maxOccurs="unbounded"/>
148               <xsd:choice>
149                  <xsd:element ref="csw:AbstractQuery"/>
150                  <xsd:any processContents="strict" namespace="##other"/>
151               </xsd:choice>
152            </xsd:sequence>
153            <xsd:attribute name="requestId" type="xsd:anyURI" use="optional"/>
154            <xsd:attribute name="resultType" type="csw:ResultType"
155               use="optional" default="hits"/>
156            <xsd:attributeGroup ref="csw:BasicRetrievalOptions"/>
157         </xsd:extension>
158      </xsd:complexContent>
159   </xsd:complexType>
160   <xsd:attributeGroup name="BasicRetrievalOptions" id="BasicRetrievalOptions">
161      <xsd:annotation>
162         <xsd:documentation xml:lang="en">Various attributes that specify basic retrieval options:
163
164            outputFormat   - the media type of the response message
165            outputSchema   - the preferred schema for records in the result set
166            startPosition  - requests a slice of the result set, starting
167                             at this position
168            maxRecords     - the maximum number of records to return. No
169                             records are  returned if maxRecords=0.</xsd:documentation>
170      </xsd:annotation>
171      <xsd:attribute name="outputFormat" type="xsd:string" use="optional"
172         default="application/xml"/>
173      <xsd:attribute name="outputSchema" type="xsd:anyURI" use="optional"/>
174      <xsd:attribute name="startPosition" type="xsd:positiveInteger"
175         use="optional" default="1"/>
176      <xsd:attribute name="maxRecords" type="xsd:nonNegativeInteger"
177         use="optional" default="10"/>
178   </xsd:attributeGroup>
179   <xsd:simpleType name="ResultType" id="ResultType">
180      <xsd:restriction base="xsd:string">
181         <xsd:enumeration value="results">
182            <xsd:annotation>
183               <xsd:documentation>Include results in the response.</xsd:documentation>
184            </xsd:annotation>
185         </xsd:enumeration>
186         <xsd:enumeration value="hits">
187            <xsd:annotation>
188               <xsd:documentation>Provide a result set summary, but no results.</xsd:documentation>
189            </xsd:annotation>
190         </xsd:enumeration>
191         <xsd:enumeration value="validate">
192            <xsd:annotation>
193               <xsd:documentation>Validate the request and return an Acknowledgement message if it
194              is valid. Continue processing the request asynchronously.</xsd:documentation>
195            </xsd:annotation>
196         </xsd:enumeration>
197      </xsd:restriction>
198   </xsd:simpleType>
199   <xsd:complexType name="DistributedSearchType" id="DistributedSearchType">
200      <xsd:annotation>
201         <xsd:documentation xml:lang="en">Governs the behaviour of a distributed search.
202         hopCount     - the maximum number of message hops before
203                        the search is terminated. Each catalogue node
204                        decrements this value when the request is received,
205                        and must not forward the request if hopCount=0.</xsd:documentation>
206      </xsd:annotation>
207      <xsd:attribute name="hopCount" type="xsd:positiveInteger" use="optional"
208         default="2"/>
209   </xsd:complexType>
210   <xsd:element name="AbstractQuery" type="csw:AbstractQueryType"
211      id="AbstractQuery" abstract="true"/>
212   <xsd:complexType name="AbstractQueryType" id="AbstractQueryType"
213      abstract="true"/>
214   <xsd:element name="Query" type="csw:QueryType" id="Query"
215      substitutionGroup="csw:AbstractQuery"/>
216   <xsd:complexType name="QueryType" id="QueryType">
217      <xsd:annotation>
218         <xsd:documentation xml:lang="en">Specifies a query to execute against instances of one or
219         more object types. A set of ElementName elements may be included
220         to specify an adhoc view of the csw:Record instances in the result
221         set. Otherwise, use ElementSetName to specify a predefined view.
222         The Constraint element contains a query filter expressed in a
223         supported query language. A sorting criterion that specifies a
224         property to sort by may be included.
225
226         typeNames - a list of object types to query.</xsd:documentation>
227      </xsd:annotation>
228      <xsd:complexContent>
229         <xsd:extension base="csw:AbstractQueryType">
230            <xsd:sequence>
231               <xsd:choice>
232                  <xsd:element ref="csw:ElementSetName"/>
233                  <xsd:element name="ElementName"
234                               type="xsd:QName"
235                               minOccurs="1" maxOccurs="unbounded"/>
236               </xsd:choice>
237               <xsd:element ref="csw:Constraint" minOccurs="0" maxOccurs="1"/>
238               <xsd:element ref="ogc:SortBy" minOccurs="0" maxOccurs="1"/>
239            </xsd:sequence>
240            <xsd:attribute name="typeNames" type="csw:TypeNameListType"
241               use="required"/>
242         </xsd:extension>
243      </xsd:complexContent>
244   </xsd:complexType>
245   <xsd:simpleType name="TypeNameListType" id="TypeNameListType">
246      <xsd:annotation>
247         <xsd:documentation xml:lang="en">The exact syntax is defined in an application profile. If querying
248       against the common record properties, only a single type may be
249       specified (Record).</xsd:documentation>
250      </xsd:annotation>
251      <xsd:list itemType="xsd:QName"/>
252   </xsd:simpleType>
253   <xsd:element name="Constraint" type="csw:QueryConstraintType" id="Constraint"/>
254   <xsd:complexType name="QueryConstraintType" id="QueryConstraintType">
255      <xsd:annotation>
256         <xsd:documentation xml:lang="en">A search constraint that adheres to one of the following syntaxes:
257         Filter   - OGC filter expression
258         CqlText  - OGC CQL predicate</xsd:documentation>
259      </xsd:annotation>
260      <xsd:choice>
261         <xsd:element ref="ogc:Filter"/>
262         <xsd:element name="CqlText" type="xsd:string"/>
263      </xsd:choice>
264      <xsd:attribute name="version" type="xsd:string" use="required">
265         <xsd:annotation>
266            <xsd:documentation>Query language version</xsd:documentation>
267         </xsd:annotation>
268      </xsd:attribute>
269   </xsd:complexType>
270   <xsd:element name="ElementSetName" type="csw:ElementSetNameType"
271      id="ElementSetName" default="summary"/>
272   <xsd:complexType name="ElementSetNameType" id="ElementSetNameType">
273      <xsd:simpleContent>
274         <xsd:extension base="csw:ElementSetType">
275            <xsd:attribute name="typeNames" type="csw:TypeNameListType"
276               use="optional"/>
277         </xsd:extension>
278      </xsd:simpleContent>
279   </xsd:complexType>
280   <xsd:simpleType name="ElementSetType" id="ElementSetType">
281      <xsd:annotation>
282         <xsd:documentation>Named subsets of catalogue object properties; these
283         views are mapped to a specific information model and
284         are defined in an application profile.</xsd:documentation>
285      </xsd:annotation>
286      <xsd:restriction base="xsd:string">
287         <xsd:enumeration value="brief"/>
288         <xsd:enumeration value="summary"/>
289         <xsd:enumeration value="full"/>
290      </xsd:restriction>
291   </xsd:simpleType>
292   <xsd:element name="GetRecordsResponse" type="csw:GetRecordsResponseType"
293      id="GetRecordsResponse"/>
294   <xsd:complexType name="GetRecordsResponseType">
295      <xsd:annotation>
296         <xsd:documentation xml:lang="en">
297            The response message for a GetRecords request. Some or all of the
298            matching records may be included as children of the SearchResults
299            element. The RequestId is only included if the client specified it.
300         </xsd:documentation>
301      </xsd:annotation>
302      <xsd:sequence>
303         <xsd:element name="RequestId" type="xsd:anyURI" minOccurs="0"/>
304         <xsd:element name="SearchStatus" type="csw:RequestStatusType"/>
305         <xsd:element name="SearchResults" type="csw:SearchResultsType"/>
306      </xsd:sequence>
307      <xsd:attribute name="version" type="xsd:string" use="optional"/>
308   </xsd:complexType>
309
310   <xsd:complexType name="RequestStatusType" id="RequestStatusType">
311      <xsd:annotation>
312         <xsd:documentation>
313            This element provides information about the status of the
314            search request.
315
316            status    - status of the search
317            timestamp - the date and time when the result set was modified
318                        (ISO 8601 format: YYYY-MM-DDThh:mm:ss[+|-]hh:mm).
319         </xsd:documentation>
320      </xsd:annotation>
321      <xsd:attribute name="timestamp" type="xsd:dateTime" use="optional"/>
322   </xsd:complexType>
323
324   <xsd:complexType name="SearchResultsType" id="SearchResultsType">
325      <xsd:annotation>
326         <xsd:documentation>Includes representations of result set members if maxRecords &gt; 0.
327         The items must conform to one of the csw:Record views or a
328         profile-specific representation.
329         
330         resultSetId  - id of the result set (a URI).
331         elementSet  - The element set that has been returned
332                       (i.e., "brief", "summary", "full")
333         recordSchema  - schema reference for included records(URI)
334         numberOfRecordsMatched  - number of records matched by the query
335         numberOfRecordsReturned - number of records returned to client
336         nextRecord - position of next record in the result set
337                      (0 if no records remain).
338         expires - the time instant when the result set expires and
339                   is discarded (ISO 8601 format)</xsd:documentation>
340      </xsd:annotation>
341      <xsd:sequence>
342         <xsd:choice>
343            <xsd:element ref="csw:AbstractRecord"
344                         minOccurs="0" maxOccurs="unbounded"/>
345            <xsd:any processContents="strict" namespace="##other"
346                     minOccurs="0" maxOccurs="unbounded"/>
347         </xsd:choice>
348      </xsd:sequence>
349      <xsd:attribute name="resultSetId"
350                     type="xsd:anyURI" use="optional"/>
351      <xsd:attribute name="elementSet"
352                     type="csw:ElementSetType" use="optional"/>
353      <xsd:attribute name="recordSchema"
354                     type="xsd:anyURI" use="optional"/>
355      <xsd:attribute name="numberOfRecordsMatched"
356                     type="xsd:nonNegativeInteger" use="required"/>
357      <xsd:attribute name="numberOfRecordsReturned"
358                     type="xsd:nonNegativeInteger" use="required"/>
359      <xsd:attribute name="nextRecord"
360                     type="xsd:nonNegativeInteger" use="optional"/>
361      <xsd:attribute name="expires" type="xsd:dateTime" use="optional"/>
362   </xsd:complexType>
363   <xsd:element name="GetRecordById" type="csw:GetRecordByIdType"
364      id="GetRecordById"/>
365   <xsd:complexType name="GetRecordByIdType" id="GetRecordByIdType">
366      <xsd:annotation>
367         <xsd:documentation xml:lang="en">
368            Convenience operation to retrieve default record representations
369            by identifier.
370            Id - object identifier (a URI) that provides a reference to a
371                 catalogue item (or a result set if the catalogue supports
372                 persistent result sets).
373            ElementSetName - one of "brief, "summary", or "full"
374         </xsd:documentation>
375      </xsd:annotation>
376      <xsd:complexContent>
377         <xsd:extension base="csw:RequestBaseType">
378            <xsd:sequence>
379               <xsd:element name="Id" type="xsd:anyURI" maxOccurs="unbounded"/>
380               <xsd:element ref="csw:ElementSetName" minOccurs="0"/>
381            </xsd:sequence>
382            <xsd:attribute name="outputFormat" type="xsd:string"
383                           use="optional" default="application/xml"/>
384            <xsd:attribute name="outputSchema" type="xsd:anyURI"
385                           use="optional"/>
386         </xsd:extension>
387      </xsd:complexContent>
388   </xsd:complexType>
389   <xsd:element name="GetRecordByIdResponse"
390      type="csw:GetRecordByIdResponseType" id="GetRecordByIdResponse"/>
391   <xsd:complexType name="GetRecordByIdResponseType"
392      id="GetRecordByIdResponseType">
393      <xsd:annotation>
394         <xsd:documentation xml:lang="en">Returns a representation of the matching entry. If there is no
395         matching record, the response message must be empty.</xsd:documentation>
396      </xsd:annotation>
397      <xsd:sequence>
398         <xsd:choice>
399            <xsd:element ref="csw:AbstractRecord"
400                         minOccurs="0" maxOccurs="unbounded"/>
401            <xsd:any processContents="strict" namespace="##other"
402                     minOccurs="0" maxOccurs="unbounded"/>
403         </xsd:choice>
404      </xsd:sequence>
405   </xsd:complexType>
406   <xsd:element name="GetDomain" type="csw:GetDomainType" id="GetDomain"/>
407   <xsd:complexType name="GetDomainType" id="GetDomainType">
408      <xsd:annotation>
409         <xsd:documentation xml:lang="en">Requests the actual values of some specified request parameter
410        or other data element.</xsd:documentation>
411      </xsd:annotation>
412      <xsd:complexContent>
413         <xsd:extension base="csw:RequestBaseType">
414            <xsd:sequence>
415               <xsd:choice>
416                  <xsd:element name="PropertyName" type="xsd:anyURI"/>
417                  <xsd:element name="ParameterName" type="xsd:anyURI"/>
418               </xsd:choice>
419            </xsd:sequence>
420         </xsd:extension>
421      </xsd:complexContent>
422   </xsd:complexType>
423   <xsd:element name="GetDomainResponse" type="csw:GetDomainResponseType"
424      id="GetDomainResponse"/>
425   <xsd:complexType name="GetDomainResponseType">
426      <xsd:annotation>
427         <xsd:documentation xml:lang="en">Returns the actual values for some property. In general this is a
428         subset of the value domain (that is, set of permissible values),
429         although in some cases these may be the same.</xsd:documentation>
430      </xsd:annotation>
431      <xsd:sequence>
432         <xsd:element name="DomainValues" type="csw:DomainValuesType"
433            maxOccurs="unbounded"/>
434      </xsd:sequence>
435   </xsd:complexType>
436   <xsd:complexType name="DomainValuesType" id="DomainValuesType">
437      <xsd:sequence>
438         <xsd:choice>
439            <xsd:element name="PropertyName" type="xsd:anyURI"/>
440            <xsd:element name="ParameterName" type="xsd:anyURI"/>
441         </xsd:choice>
442         <xsd:choice minOccurs="0">
443            <xsd:element name="ListOfValues" type="csw:ListOfValuesType"/>
444            <xsd:element name="ConceptualScheme" type="csw:ConceptualSchemeType"/>
445            <xsd:element name="RangeOfValues" type="csw:RangeOfValuesType"/>
446         </xsd:choice>
447      </xsd:sequence>
448      <xsd:attribute name="type" type="xsd:QName" use="required"/>
449      <xsd:attribute name="uom" type="xsd:anyURI" use="optional"/>
450   </xsd:complexType>
451   <xsd:complexType name="ListOfValuesType" id="ListOfValuesType">
452      <xsd:sequence>
453         <xsd:element name="Value" type="xsd:anyType" maxOccurs="unbounded"/>
454      </xsd:sequence>
455   </xsd:complexType>
456   <xsd:complexType name="ConceptualSchemeType" id="ConceptualSchemeType">
457      <xsd:sequence>
458         <xsd:element name="Name" type="xsd:string"/>
459         <xsd:element name="Document" type="xsd:anyURI"/>
460         <xsd:element name="Authority" type="xsd:anyURI"/>
461      </xsd:sequence>
462   </xsd:complexType>
463   <xsd:complexType name="RangeOfValuesType" id="RangeOfValuesType">
464      <xsd:sequence>
465         <xsd:element name="MinValue" type="xsd:anyType"/>
466         <xsd:element name="MaxValue" type="xsd:anyType"/>
467      </xsd:sequence>
468   </xsd:complexType>
469   <xsd:element name="Acknowledgement" type="csw:AcknowledgementType"
470      id="Acknowledgement"/>
471   <xsd:complexType name="AcknowledgementType" id="AcknowledgementType">
472      <xsd:annotation>
473         <xsd:documentation xml:lang="en">This is a general acknowledgement response message for all requests
474         that may be processed in an asynchronous manner.
475         EchoedRequest - Echoes the submitted request message
476         RequestId     - identifier for polling purposes (if no response
477                         handler is available, or the URL scheme is
478                         unsupported)</xsd:documentation>
479      </xsd:annotation>
480      <xsd:sequence>
481         <xsd:element name="EchoedRequest" type="csw:EchoedRequestType"/>
482         <xsd:element name="RequestId" type="xsd:anyURI" minOccurs="0"/>
483      </xsd:sequence>
484      <xsd:attribute name="timeStamp" type="xsd:dateTime" use="required"/>
485   </xsd:complexType>
486   <xsd:complexType name="EchoedRequestType" id="EchoedRequestType">
487      <xsd:annotation>
488         <xsd:documentation xml:lang="en">Includes a copy of the request message body.</xsd:documentation>
489      </xsd:annotation>
490      <xsd:sequence>
491         <xsd:any namespace="##any" processContents="lax"/>
492      </xsd:sequence>
493   </xsd:complexType>
494</xsd:schema>
Note: See TracBrowser for help on using the repository browser.