source: TI01-discovery/branches/ws-Discovery2-MEDIN/discoveryUpgrade/wsdl/DiscoverySchema.xsd @ 5981

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI01-discovery/branches/ws-Discovery2-MEDIN/discoveryUpgrade/wsdl/DiscoverySchema.xsd@5981
Revision 5981, 14.5 KB checked in by mpritcha, 10 years ago (diff)

Added documentId to documents element of presentType (omitted in error). Removed annotations about defaults for start & howmany ...better placed in documentation.

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Matt Pritchard (NERC Earth Observation Data Centre) -->
3<xs:schema targetNamespace="urn:DiscoveryServiceAPI" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:DiscoveryServiceAPI" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:tns1="urn:DiscoveryServiceAPI" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
4        <!-- Request elements -->
5        <xs:element name="doSearch" type="tns:SearchType"/>
6        <xs:element name="doPresent" type="tns:PresentType"/>
7        <xs:element name="getListNames" nillable="true"/>
8        <xs:element name="getList" type="tns:getListType"/>
9        <!-- Response elements -->
10        <xs:element name="doSearchReturn" type="tns:SearchReturnType"/>
11        <xs:element name="doPresentReturn" type="tns:PresentReturnType"/>
12        <xs:element name="getListNamesReturn" type="tns:getListNamesReturnType"/>
13        <xs:element name="getListReturn" type="tns:getListReturnType"/>
14        <!-- Request global types -->
15        <xs:complexType name="PresentType">
16                <xs:sequence>
17                        <xs:element name="documents" minOccurs="0">
18                                <xs:complexType>
19                                        <xs:complexContent>
20                                                <xs:extension base="tns:DocumentsType">
21                                                        <xs:sequence>
22                                                                <xs:element ref="tns:documentId" maxOccurs="unbounded"/>
23                                                        </xs:sequence>
24                                                </xs:extension>
25                                        </xs:complexContent>
26                                </xs:complexType>
27                        </xs:element>
28                        <xs:element name="format" type="xs:string" minOccurs="0">
29                                <xs:annotation>
30                                        <xs:documentation>Required presentation format, value taken from presentFormatList.</xs:documentation>
31                                </xs:annotation>
32                        </xs:element>
33                </xs:sequence>
34        </xs:complexType>
35        <xs:complexType name="SearchType">
36                <xs:sequence>
37                        <xs:element name="searchCriteria">
38                                <xs:annotation>
39                                        <xs:documentation>Must have at least one of : termSearch, spatialSearch, temporalSearch.</xs:documentation>
40                                </xs:annotation>
41                                <xs:complexType>
42                                        <xs:sequence>
43                                                <xs:element name="termSearch" type="tns:TermSearchType" minOccurs="0" maxOccurs="unbounded">
44                                                        <xs:annotation>
45                                                                <xs:documentation>Can have multiple term searches - will treat multiple termSearches in "AND" combination, unless multiple instances of same termTarget, in which case "OR" combination is used for those with the same termTarget.</xs:documentation>
46                                                        </xs:annotation>
47                                                </xs:element>
48                                                <xs:element name="spatialSearch" type="tns:SpatialType" minOccurs="0">
49                                                        <xs:annotation>
50                                                                <xs:documentation>Comparison of a single search bounding box to spatial coverage(s) of data.</xs:documentation>
51                                                        </xs:annotation>
52                                                </xs:element>
53                                                <xs:element name="temporalSearch" type="tns:TemporalType" minOccurs="0">
54                                                        <xs:annotation>
55                                                                <xs:documentation>Comparison of a date or date range to specified/default dates within metadata.</xs:documentation>
56                                                        </xs:annotation>
57                                                </xs:element>
58                                        </xs:sequence>
59                                </xs:complexType>
60                        </xs:element>
61                        <xs:element name="start" type="xs:positiveInteger" minOccurs="0">
62                                <xs:annotation>
63                                        <xs:documentation>Sequential record number within result set used as first record within returned search response. Useful for pagination.</xs:documentation>
64                                </xs:annotation>
65                        </xs:element>
66                        <xs:element name="howMany" type="xs:positiveInteger" minOccurs="0">
67                                <xs:annotation>
68                                        <xs:documentation>How many records from result set to include in search response.</xs:documentation>
69                                </xs:annotation>
70                        </xs:element>
71                        <xs:element name="orderBy" type="tns:OrderByType" minOccurs="0" maxOccurs="unbounded">
72                                <xs:annotation>
73                                        <xs:documentation>Optional set of field(s) by which to order records in the result set and hence the search response. Direction can be specified alongside each field.</xs:documentation>
74                                </xs:annotation>
75                        </xs:element>
76                        <xs:element name="scope" type="xs:string" minOccurs="0" maxOccurs="unbounded">
77                                <xs:annotation>
78                                        <xs:documentation>Optional term used to restrict search to records tagged with a data provider "scope" as listed in scopeList.</xs:documentation>
79                                </xs:annotation>
80                        </xs:element>
81                        <xs:element name="format" type="xs:string" minOccurs="0">
82                                <xs:annotation>
83                                        <xs:documentation>restrict records to specific original input formats. </xs:documentation>
84                                </xs:annotation>
85                        </xs:element>
86                        <xs:element name="recordDetail" minOccurs="0">
87                                <xs:annotation>
88                                        <xs:documentation>Level of detail to be used for each record in the search response (before initiating doPresent). Values taken from recordDetailList. Default = "id", i.e. just the document id.</xs:documentation>
89                                </xs:annotation>
90                        </xs:element>
91                </xs:sequence>
92        </xs:complexType>
93        <xs:complexType name="getListType">
94                <xs:sequence>
95                        <xs:element name="listName" type="xs:string"/>
96                </xs:sequence>
97        </xs:complexType>
98        <!-- Response global types -->
99        <xs:complexType name="PresentReturnType">
100                <xs:sequence>
101                        <xs:element name="status" type="xs:boolean"/>
102                        <xs:element name="statusMessage" type="xs:string"/>
103                        <xs:element name="documents" minOccurs="0">
104                                <xs:complexType>
105                                        <xs:complexContent>
106                                                <xs:extension base="tns:DocumentReturnType">
107                                                        <xs:sequence>
108                                                                <xs:element name="documentFull" type="tns:ReturnFullType" maxOccurs="unbounded"/>
109                                                        </xs:sequence>
110                                                </xs:extension>
111                                        </xs:complexContent>
112                                </xs:complexType>
113                        </xs:element>
114                </xs:sequence>
115        </xs:complexType>
116        <xs:complexType name="SearchReturnType">
117                <xs:sequence>
118                        <xs:element name="status" type="xs:boolean"/>
119                        <xs:element name="statusMessage" type="xs:string"/>
120                        <xs:element name="resultId" type="xs:int" minOccurs="0"/>
121                        <xs:element name="hits" type="xs:int" minOccurs="0"/>
122                        <xs:element name="documents" minOccurs="0">
123                                <xs:complexType>
124                                        <xs:complexContent>
125                                                <xs:extension base="tns:DocumentsType">
126                                                        <xs:choice>
127                                                                <xs:sequence>
128                                                                        <xs:element ref="tns:documentId" maxOccurs="unbounded"/>
129                                                                </xs:sequence>
130                                                                <xs:sequence>
131                                                                        <xs:element name="documentBrief" type="tns:ReturnBriefType" maxOccurs="unbounded"/>
132                                                                </xs:sequence>
133                                                                <xs:sequence>
134                                                                        <xs:element name="documentSummary" type="tns:ReturnSummaryType" maxOccurs="unbounded"/>
135                                                                </xs:sequence>
136                                                        </xs:choice>
137                                                </xs:extension>
138                                        </xs:complexContent>
139                                </xs:complexType>
140                        </xs:element>
141                </xs:sequence>
142        </xs:complexType>
143        <xs:complexType name="getListNamesReturnType">
144                <xs:sequence maxOccurs="unbounded">
145                        <xs:element name="listNames">
146                                <xs:complexType>
147                                        <xs:sequence>
148                                                <xs:element name="listName" type="xs:string" maxOccurs="unbounded"/>
149                                        </xs:sequence>
150                                </xs:complexType>
151                        </xs:element>
152                </xs:sequence>
153        </xs:complexType>
154        <xs:complexType name="getListReturnType">
155                <xs:sequence>
156                        <xs:element name="list" minOccurs="0">
157                                <xs:complexType>
158                                        <xs:sequence>
159                                                <xs:element name="listMember" type="xs:string" maxOccurs="unbounded"/>
160                                        </xs:sequence>
161                                        <xs:attribute name="name" type="xs:string" use="required"/>
162                                </xs:complexType>
163                        </xs:element>
164                </xs:sequence>
165        </xs:complexType>
166        <!-- Other global types-->
167        <xs:complexType name="BoundingBoxType">
168                <xs:all>
169                        <xs:element name="LimitNorth" type="xs:decimal"/>
170                        <xs:element name="LimitSouth" type="xs:decimal"/>
171                        <xs:element name="LimitWest" type="xs:decimal"/>
172                        <xs:element name="LimitEast" type="xs:decimal"/>
173                </xs:all>
174        </xs:complexType>
175        <xs:complexType name="DateRangeType">
176                <xs:sequence>
177                        <xs:element name="date" type="tns:DateValueType" maxOccurs="2">
178                                <xs:annotation>
179                                        <xs:documentation>Single date, or pair of dates representing a date range, to be used in search against specified date target in metadata.</xs:documentation>
180                                </xs:annotation>
181                        </xs:element>
182                        <xs:element name="dateRangeTarget" type="xs:string" minOccurs="0">
183                                <xs:annotation>
184                                        <xs:documentation>Target date to which date search should be applied (e.g. temporal coverage of data, date of publication). Value to be chosen from dateRangeTargetList. Default = temporalCoverage.</xs:documentation>
185                                </xs:annotation>
186                        </xs:element>
187                </xs:sequence>
188        </xs:complexType>
189        <xs:complexType name="DocumentsType"/>
190        <xs:simpleType name="orderByDirectionType">
191                <xs:restriction base="xs:string">
192                        <xs:enumeration value="ascending"/>
193                        <xs:enumeration value="descending"/>
194                </xs:restriction>
195        </xs:simpleType>
196        <xs:complexType name="SpatialType">
197                <xs:sequence>
198                        <xs:element name="BoundingBox" type="tns:BoundingBoxType">
199                                <xs:annotation>
200                                        <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation>
201                                </xs:annotation>
202                        </xs:element>
203                        <xs:element name="spatialOperator" type="xs:string" minOccurs="0">
204                                <xs:annotation>
205                                        <xs:documentation>Operator used to compare search bounding box with spatial coverage in metadata. Values from spatialOperatorList. Default is "overlaps".</xs:documentation>
206                                </xs:annotation>
207                        </xs:element>
208                        <xs:element name="spatialReferenceSystem" minOccurs="0">
209                                <xs:annotation>
210                                        <xs:documentation>Spatial reference system used for search bounding box e.g. EPSG:4326, taken from list spatialReferenceSystemList</xs:documentation>
211                                </xs:annotation>
212                        </xs:element>
213                </xs:sequence>
214        </xs:complexType>
215        <xs:complexType name="TermSearchType">
216                <xs:sequence>
217                        <xs:element name="term" type="xs:string">
218                                <xs:annotation>
219                                        <xs:documentation>String(s) used in search. Whitespace between strings interpreted as OR combinations of those strings, unless "+" used to combine them, in which case AND combination.</xs:documentation>
220                                </xs:annotation>
221                        </xs:element>
222                        <xs:element name="termTarget" type="xs:string" minOccurs="0" maxOccurs="unbounded">
223                                <xs:annotation>
224                                        <xs:documentation>Metadata field used as target for search. From list termTargetList</xs:documentation>
225                                </xs:annotation>
226                        </xs:element>
227                </xs:sequence>
228        </xs:complexType>
229        <xs:complexType name="TemporalType">
230                <xs:sequence>
231                        <xs:element name="DateRange" type="tns:DateRangeType">
232                                <xs:annotation>
233                                        <xs:documentation>Specify start or end date, or both, along with target date field within metadata.</xs:documentation>
234                                </xs:annotation>
235                        </xs:element>
236                </xs:sequence>
237        </xs:complexType>
238        <xs:complexType name="DocumentReturnType"/>
239        <xs:complexType name="OrderingMetricType">
240                <xs:annotation>
241                        <xs:documentation>Intented to allow passing of ordering information at the present level</xs:documentation>
242                </xs:annotation>
243                <xs:sequence>
244                        <xs:element name="metricName" type="xs:string"/>
245                        <xs:element name="metricValue" type="xs:string" minOccurs="0">
246                                <xs:annotation>
247                                        <xs:documentation>Specific value of the metric when used in a 1:1 context with a document return</xs:documentation>
248                                </xs:annotation>
249                        </xs:element>
250                </xs:sequence>
251        </xs:complexType>
252        <xs:complexType name="DateValueType">
253                <xs:sequence>
254                        <xs:element name="DateValue" type="xs:date"/>
255                        <xs:element name="TemporalOperator" type="xs:string" minOccurs="0">
256                                <xs:annotation>
257                                        <xs:documentation>Comparison operator taken from temporalOperatorList. Default = "equals"</xs:documentation>
258                                </xs:annotation>
259                        </xs:element>
260                </xs:sequence>
261        </xs:complexType>
262        <xs:complexType name="OrderByType">
263                <xs:sequence>
264                        <xs:element name="orderByField" type="xs:string">
265                                <xs:annotation>
266                                        <xs:documentation>Field to use for ordering within result set (and hence search response). Value taken from orderByFieldList</xs:documentation>
267                                </xs:annotation>
268                        </xs:element>
269                        <xs:element name="orderByDirection" type="tns:orderByDirectionType" minOccurs="0">
270                                <xs:annotation>
271                                        <xs:documentation>Direction of ordering used in result set and hence search response. Valid values : "ascending" or "descending". Default is descending.</xs:documentation>
272                                </xs:annotation>
273                        </xs:element>
274                </xs:sequence>
275        </xs:complexType>
276        <xs:element name="documentId" type="xs:string"/>
277        <xs:complexType name="ReturnBriefType">
278                <xs:complexContent>
279                        <xs:extension base="tns:DocumentsType">
280                                <xs:sequence>
281                                        <xs:element ref="tns:documentId"/>
282                                        <xs:element name="title"/>
283                                        <xs:element name="orderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
284                                                <xs:annotation>
285                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
286                                                </xs:annotation>
287                                        </xs:element>
288                                </xs:sequence>
289                        </xs:extension>
290                </xs:complexContent>
291        </xs:complexType>
292        <xs:complexType name="ReturnSummaryType">
293                <xs:complexContent>
294                        <xs:extension base="tns:DocumentsType">
295                                <xs:sequence>
296                                        <xs:element ref="tns:documentId"/>
297                                        <xs:element name="title"/>
298                                        <xs:element name="abstract"/>
299                                        <xs:element name="orderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
300                                                <xs:annotation>
301                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
302                                                </xs:annotation>
303                                        </xs:element>
304                                        <xs:element name="temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
305                                        <xs:element name="spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
306                                </xs:sequence>
307                        </xs:extension>
308                </xs:complexContent>
309        </xs:complexType>
310        <xs:complexType name="ReturnFullType">
311                <xs:complexContent>
312                        <xs:extension base="tns:DocumentsType">
313                                <xs:sequence>
314                                        <xs:element ref="tns:documentId"/>
315                                        <xs:element name="title"/>
316                                        <xs:element name="abstract"/>
317                                        <xs:element name="orderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
318                                                <xs:annotation>
319                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
320                                                </xs:annotation>
321                                        </xs:element>
322                                        <xs:element name="temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
323                                        <xs:element name="spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
324                                        <xs:element name="document" type="xs:string">
325                                                <xs:annotation>
326                                                        <xs:documentation>CDATA content of returned XML document.</xs:documentation>
327                                                </xs:annotation>
328                                        </xs:element>
329                                </xs:sequence>
330                        </xs:extension>
331                </xs:complexContent>
332        </xs:complexType>
333</xs:schema>
Note: See TracBrowser for help on using the repository browser.