source: TI01-discovery/branches/ws-Discovery2-MEDIN/discoveryUpgrade/wsdl/Discovery.wsdl @ 6156

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI01-discovery/branches/ws-Discovery2-MEDIN/discoveryUpgrade/wsdl/Discovery.wsdl
Revision 6156, 18.3 KB checked in by sdonegan, 10 years ago (diff)

Added "GetVersion?" operation useful for checking operation of service and tying API version with portal etc etc

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<wsdl:definitions 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" targetNamespace="urn:DiscoveryServiceAPI">
4        <wsdl:types>
5        <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">
6        <!-- Request elements -->
7        <xs:element name="DoSearch" type="tns:SearchType"/>
8        <xs:element name="DoPresent" type="tns:PresentType"/>
9        <xs:element name="GetListNames" nillable="true"/>
10        <xs:element name="GetList" type="tns:GetListType"/>
11        <xs:complexType name="GetVersion"/>
12        <!-- Response elements -->
13        <xs:element name="DoSearchReturn" type="tns:SearchReturnType"/>
14        <xs:element name="DoPresentReturn" type="tns:PresentReturnType"/>
15        <xs:element name="GetListNamesReturn" type="tns:GetListNamesReturnType"/>
16        <xs:element name="GetListReturn" type="tns:GetListReturnType"/>
17        <xs:complexType name="GetVersionReturn">
18                <xs:complexContent>
19                        <xs:extension base="tns:GetVersionReturnType"/>
20                </xs:complexContent>
21        </xs:complexType>
22        <!-- Request global types -->
23        <xs:complexType name="PresentType">
24                <xs:sequence>
25                        <xs:element name="Documents" minOccurs="0">
26                                <xs:complexType>
27                                        <xs:complexContent>
28                                                <xs:extension base="tns:DocumentsType">
29                                                        <xs:sequence>
30                                                                <xs:element ref="tns:DocumentId" maxOccurs="unbounded"/>
31                                                        </xs:sequence>
32                                                </xs:extension>
33                                        </xs:complexContent>
34                                </xs:complexType>
35                        </xs:element>
36                        <xs:element name="Format" type="xs:string" minOccurs="0">
37                                <xs:annotation>
38                                        <xs:documentation>Required presentation format, value taken from presentFormatList.</xs:documentation>
39                                </xs:annotation>
40                        </xs:element>
41                </xs:sequence>
42        </xs:complexType>
43        <xs:complexType name="SearchType">
44                <xs:sequence>
45                        <xs:element name="SearchCriteria">
46                                <xs:annotation>
47                                        <xs:documentation>Must have at least one of : termSearch, spatialSearch, temporalSearch.</xs:documentation>
48                                </xs:annotation>
49                                <xs:complexType>
50                                        <xs:sequence>
51                                                <xs:element name="TermSearch" type="tns:TermSearchType" minOccurs="0" maxOccurs="unbounded">
52                                                        <xs:annotation>
53                                                                <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>
54                                                        </xs:annotation>
55                                                </xs:element>
56                                                <xs:element name="SpatialSearch" type="tns:SpatialType" minOccurs="0">
57                                                        <xs:annotation>
58                                                                <xs:documentation>Comparison of a single search bounding box to spatial coverage(s) of data.</xs:documentation>
59                                                        </xs:annotation>
60                                                </xs:element>
61                                                <xs:element name="TemporalSearch" type="tns:TemporalType" minOccurs="0">
62                                                        <xs:annotation>
63                                                                <xs:documentation>Comparison of a date or date range to specified/default dates within metadata.</xs:documentation>
64                                                        </xs:annotation>
65                                                </xs:element>
66                                        </xs:sequence>
67                                </xs:complexType>
68                        </xs:element>
69                        <xs:element name="Start" type="xs:positiveInteger" minOccurs="0">
70                                <xs:annotation>
71                                        <xs:documentation>Sequential record number within result set used as first record within returned search response. Useful for pagination.</xs:documentation>
72                                </xs:annotation>
73                        </xs:element>
74                        <xs:element name="HowMany" type="xs:positiveInteger" minOccurs="0">
75                                <xs:annotation>
76                                        <xs:documentation>How many records from result set to include in search response.</xs:documentation>
77                                </xs:annotation>
78                        </xs:element>
79                        <xs:element name="OrderBy" type="tns:OrderByType" minOccurs="0" maxOccurs="unbounded">
80                                <xs:annotation>
81                                        <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>
82                                </xs:annotation>
83                        </xs:element>
84                        <xs:element name="Scope" type="xs:string" minOccurs="0" maxOccurs="unbounded">
85                                <xs:annotation>
86                                        <xs:documentation>Optional term used to restrict search to records tagged with a data provider "scope" as listed in scopeList.</xs:documentation>
87                                </xs:annotation>
88                        </xs:element>
89                        <xs:element name="Format" type="xs:string" minOccurs="0">
90                                <xs:annotation>
91                                        <xs:documentation>restrict records to specific original input formats. </xs:documentation>
92                                </xs:annotation>
93                        </xs:element>
94                        <xs:element name="RecordDetail" minOccurs="0">
95                                <xs:annotation>
96                                        <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>
97                                </xs:annotation>
98                        </xs:element>
99                </xs:sequence>
100        </xs:complexType>
101        <xs:complexType name="GetListType">
102                <xs:sequence>
103                        <xs:element name="listName" type="xs:string"/>
104                </xs:sequence>
105        </xs:complexType>
106        <!-- Response global types -->
107        <xs:complexType name="PresentReturnType">
108                <xs:sequence>
109                        <xs:element name="Status" type="xs:boolean"/>
110                        <xs:element name="StatusMessage" type="xs:string"/>
111                        <xs:element name="Documents" minOccurs="0">
112                                <xs:complexType>
113                                        <xs:complexContent>
114                                                <xs:extension base="tns:DocumentReturnType">
115                                                        <xs:sequence>
116                                                                <xs:element name="DocumentFull" type="tns:ReturnFullType" maxOccurs="unbounded"/>
117                                                        </xs:sequence>
118                                                </xs:extension>
119                                        </xs:complexContent>
120                                </xs:complexType>
121                        </xs:element>
122                </xs:sequence>
123        </xs:complexType>
124        <xs:complexType name="SearchReturnType">
125                <xs:sequence>
126                        <xs:element name="Status" type="xs:boolean"/>
127                        <xs:element name="StatusMessage" type="xs:string"/>
128                        <xs:element name="ResultId" type="xs:int" minOccurs="0"/>
129                        <xs:element name="Hits" type="xs:int" minOccurs="0"/>
130                        <xs:element name="Documents" minOccurs="0">
131                                <xs:complexType>
132                                        <xs:complexContent>
133                                                <xs:extension base="tns:DocumentsType">
134                                                        <xs:choice>
135                                                                <xs:sequence>
136                                                                        <xs:element ref="tns:DocumentId" maxOccurs="unbounded"/>
137                                                                </xs:sequence>
138                                                                <xs:sequence>
139                                                                        <xs:element name="DocumentBrief" type="tns:ReturnBriefType" maxOccurs="unbounded"/>
140                                                                </xs:sequence>
141                                                                <xs:sequence>
142                                                                        <xs:element name="DocumentSummary" type="tns:ReturnSummaryType" maxOccurs="unbounded"/>
143                                                                </xs:sequence>
144                                                        </xs:choice>
145                                                </xs:extension>
146                                        </xs:complexContent>
147                                </xs:complexType>
148                        </xs:element>
149                </xs:sequence>
150        </xs:complexType>
151        <xs:complexType name="GetListNamesReturnType">
152                <xs:sequence maxOccurs="unbounded">
153                        <xs:element name="listNames">
154                                <xs:complexType>
155                                        <xs:sequence>
156                                                <xs:element name="listName" type="xs:string" maxOccurs="unbounded"/>
157                                        </xs:sequence>
158                                </xs:complexType>
159                        </xs:element>
160                </xs:sequence>
161        </xs:complexType>
162        <xs:complexType name="GetListReturnType">
163                <xs:sequence>
164                        <xs:element name="list" minOccurs="0">
165                                <xs:complexType>
166                                        <xs:sequence>
167                                                <xs:element name="listMember" type="xs:string" maxOccurs="unbounded"/>
168                                        </xs:sequence>
169                                        <xs:attribute name="name" type="xs:string" use="required"/>
170                                </xs:complexType>
171                        </xs:element>
172                </xs:sequence>
173        </xs:complexType>
174        <!-- Other global types-->
175        <xs:complexType name="BoundingBoxType">
176                <xs:all>
177                        <xs:element name="LimitNorth" type="xs:decimal"/>
178                        <xs:element name="LimitSouth" type="xs:decimal"/>
179                        <xs:element name="LimitWest" type="xs:decimal"/>
180                        <xs:element name="LimitEast" type="xs:decimal"/>
181                </xs:all>
182        </xs:complexType>
183        <xs:complexType name="DateRangeType">
184                <xs:sequence>
185                        <xs:element name="Date" type="tns:DateValueType" maxOccurs="2">
186                                <xs:annotation>
187                                        <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>
188                                </xs:annotation>
189                        </xs:element>
190                        <xs:element name="DateRangeTarget" type="xs:string" minOccurs="0">
191                                <xs:annotation>
192                                        <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>
193                                </xs:annotation>
194                        </xs:element>
195                </xs:sequence>
196        </xs:complexType>
197        <xs:complexType name="DocumentsType"/>
198        <xs:simpleType name="OrderByDirectionType">
199                <xs:restriction base="xs:string">
200                        <xs:enumeration value="ascending"/>
201                        <xs:enumeration value="descending"/>
202                </xs:restriction>
203        </xs:simpleType>
204        <xs:complexType name="SpatialType">
205                <xs:sequence>
206                        <xs:element name="BoundingBox" type="tns:BoundingBoxType">
207                                <xs:annotation>
208                                        <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation>
209                                </xs:annotation>
210                        </xs:element>
211                        <xs:element name="SpatialOperator" type="xs:string" minOccurs="0">
212                                <xs:annotation>
213                                        <xs:documentation>Operator used to compare search bounding box with spatial coverage in metadata. Values from spatialOperatorList. Default is "overlaps".</xs:documentation>
214                                </xs:annotation>
215                        </xs:element>
216                        <xs:element name="SpatialReferenceSystem" minOccurs="0">
217                                <xs:annotation>
218                                        <xs:documentation>Spatial reference system used for search bounding box e.g. EPSG:4326, taken from list spatialReferenceSystemList</xs:documentation>
219                                </xs:annotation>
220                        </xs:element>
221                </xs:sequence>
222        </xs:complexType>
223        <xs:complexType name="TermSearchType">
224                <xs:sequence>
225                        <xs:element name="Term" type="xs:string">
226                                <xs:annotation>
227                                        <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>
228                                </xs:annotation>
229                        </xs:element>
230                        <xs:element name="TermTarget" type="xs:string" minOccurs="0" maxOccurs="unbounded">
231                                <xs:annotation>
232                                        <xs:documentation>Metadata field used as target for search. From list termTargetList</xs:documentation>
233                                </xs:annotation>
234                        </xs:element>
235                </xs:sequence>
236        </xs:complexType>
237        <xs:complexType name="TemporalType">
238                <xs:sequence>
239                        <xs:element name="DateRange" type="tns:DateRangeType">
240                                <xs:annotation>
241                                        <xs:documentation>Specify start or end date, or both, along with target date field within metadata.</xs:documentation>
242                                </xs:annotation>
243                        </xs:element>
244                </xs:sequence>
245        </xs:complexType>
246        <xs:complexType name="DocumentReturnType"/>
247        <xs:complexType name="OrderingMetricType">
248                <xs:annotation>
249                        <xs:documentation>Intented to allow passing of ordering information at the present level</xs:documentation>
250                </xs:annotation>
251                <xs:sequence>
252                        <xs:element name="MetricName" type="xs:string"/>
253                        <xs:element name="MetricValue" type="xs:string" minOccurs="0">
254                                <xs:annotation>
255                                        <xs:documentation>Specific value of the metric when used in a 1:1 context with a document return</xs:documentation>
256                                </xs:annotation>
257                        </xs:element>
258                </xs:sequence>
259        </xs:complexType>
260        <xs:complexType name="DateValueType">
261                <xs:sequence>
262                        <xs:element name="DateValue" type="xs:date"/>
263                        <xs:element name="TemporalOperator" type="xs:string" minOccurs="0">
264                                <xs:annotation>
265                                        <xs:documentation>Comparison operator taken from temporalOperatorList. Default = "equals"</xs:documentation>
266                                </xs:annotation>
267                        </xs:element>
268                </xs:sequence>
269        </xs:complexType>
270        <xs:complexType name="OrderByType">
271                <xs:sequence>
272                        <xs:element name="OrderByField" type="xs:string">
273                                <xs:annotation>
274                                        <xs:documentation>Field to use for ordering within result set (and hence search response). Value taken from orderByFieldList</xs:documentation>
275                                </xs:annotation>
276                        </xs:element>
277                        <xs:element name="OrderByDirection" type="tns:OrderByDirectionType" minOccurs="0">
278                                <xs:annotation>
279                                        <xs:documentation>Direction of ordering used in result set and hence search response. Valid values : "ascending" or "descending". Default is descending.</xs:documentation>
280                                </xs:annotation>
281                        </xs:element>
282                </xs:sequence>
283        </xs:complexType>
284        <xs:element name="DocumentId" type="xs:string"/>
285        <xs:complexType name="ReturnBriefType">
286                <xs:complexContent>
287                        <xs:extension base="tns:DocumentsType">
288                                <xs:sequence>
289                                        <xs:element ref="tns:DocumentId"/>
290                                        <xs:element name="Title"/>
291                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
292                                                <xs:annotation>
293                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
294                                                </xs:annotation>
295                                        </xs:element>
296                                </xs:sequence>
297                        </xs:extension>
298                </xs:complexContent>
299        </xs:complexType>
300        <xs:complexType name="ReturnSummaryType">
301                <xs:complexContent>
302                        <xs:extension base="tns:DocumentsType">
303                                <xs:sequence>
304                                        <xs:element ref="tns:DocumentId"/>
305                                        <xs:element name="Title"/>
306                                        <xs:element name="Abstract"/>
307                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
308                                                <xs:annotation>
309                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
310                                                </xs:annotation>
311                                        </xs:element>
312                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
313                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
314                                </xs:sequence>
315                        </xs:extension>
316                </xs:complexContent>
317        </xs:complexType>
318        <xs:complexType name="ReturnFullType">
319                <xs:complexContent>
320                        <xs:extension base="tns:DocumentsType">
321                                <xs:sequence>
322                                        <xs:element ref="tns:DocumentId"/>
323                                        <xs:element name="Title" minOccurs="0"/>
324                                        <xs:element name="Abstract" minOccurs="0"/>
325                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
326                                                <xs:annotation>
327                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
328                                                </xs:annotation>
329                                        </xs:element>
330                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
331                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
332                                        <xs:element name="Document" type="xs:string">
333                                                <xs:annotation>
334                                                        <xs:documentation>CDATA content of returned XML document.</xs:documentation>
335                                                </xs:annotation>
336                                        </xs:element>
337                                </xs:sequence>
338                        </xs:extension>
339                </xs:complexContent>
340        </xs:complexType>
341        <xs:complexType name="GetVersionReturnType">
342                <xs:sequence>
343                        <xs:element name="Version" type="xs:string"/>
344                        <xs:element name="Comment" type="xs:string"/>
345                </xs:sequence>
346        </xs:complexType>
347</xs:schema>
348        </wsdl:types>
349        <wsdl:message name="doSearchRequest">
350                <wsdl:part name="part" element="tns1:DoSearch"/>
351        </wsdl:message>
352        <wsdl:message name="doSearchResponse">
353                <wsdl:part name="part" element="tns1:DoSearchReturn"/>
354        </wsdl:message>
355        <wsdl:message name="getListNamesRequest">
356                <wsdl:part name="part" element="tns1:GetListNames"/>
357        </wsdl:message>
358        <wsdl:message name="getListRequest">
359                <wsdl:part name="part" element="tns1:GetList"/>
360        </wsdl:message>
361        <wsdl:message name="doPresentRequest">
362                <wsdl:part name="part" element="tns1:DoPresent"/>
363        </wsdl:message>
364        <wsdl:message name="doPresentResponse">
365                <wsdl:part name="part" element="tns1:DoPresentReturn"/>
366        </wsdl:message>
367        <wsdl:message name="getListNamesResponse">
368                <wsdl:part name="part" element="tns1:GetListNamesReturn"/>
369        </wsdl:message>
370        <wsdl:message name="getListResponse">
371                <wsdl:part name="part" element="tns1:GetListReturn"/>
372        </wsdl:message>
373        <wsdl:portType name="Discovery">
374                <wsdl:operation name="doSearch">
375                        <wsdl:input name="doSearchRequest" message="tns1:doSearchRequest"/>
376                        <wsdl:output name="doSearchResponse" message="tns1:doSearchResponse"/>
377                </wsdl:operation>
378                <wsdl:operation name="doPresent">
379                        <wsdl:input name="doPresentRequest" message="tns1:doPresentRequest"/>
380                        <wsdl:output name="doPresentResponse" message="tns1:doPresentResponse"/>
381                </wsdl:operation>
382                <wsdl:operation name="getListNames">
383                        <wsdl:input name="getListNamesRequest" message="tns1:getListNamesRequest"/>
384                        <wsdl:output name="getListNamesResponse" message="tns1:getListNamesResponse"/>
385                </wsdl:operation>
386                <wsdl:operation name="getList">
387                        <wsdl:input name="getListRequest" message="tns1:getListRequest"/>
388                        <wsdl:output name="getListResponse" message="tns1:getListResponse"/>
389                </wsdl:operation>
390        </wsdl:portType>
391        <wsdl:binding name="DiscoverySoapBinding" type="tns1:Discovery">
392                <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
393                <wsdl:operation name="doSearch">
394                        <wsdlsoap:operation/>
395                        <wsdl:input>
396                                <wsdlsoap:body use="literal"/>
397                        </wsdl:input>
398                        <wsdl:output>
399                                <wsdlsoap:body use="literal"/>
400                        </wsdl:output>
401                </wsdl:operation>
402                <wsdl:operation name="doPresent">
403                        <wsdlsoap:operation/>
404                        <wsdl:input>
405                                <wsdlsoap:body use="literal"/>
406                        </wsdl:input>
407                        <wsdl:output>
408                                <wsdlsoap:body use="literal"/>
409                        </wsdl:output>
410                </wsdl:operation>
411                <wsdl:operation name="getListNames">
412                        <wsdlsoap:operation/>
413                        <wsdl:input>
414                                <wsdlsoap:body use="literal"/>
415                        </wsdl:input>
416                        <wsdl:output>
417                                <wsdlsoap:body use="literal"/>
418                        </wsdl:output>
419                </wsdl:operation>
420                <wsdl:operation name="getList">
421                        <wsdlsoap:operation/>
422                        <wsdl:input>
423                                <wsdlsoap:body use="literal"/>
424                        </wsdl:input>
425                        <wsdl:output>
426                                <wsdlsoap:body use="literal"/>
427                        </wsdl:output>
428                </wsdl:operation>
429        </wsdl:binding>
430        <wsdl:service name="DiscoveryServiceMEDIN">
431                <wsdl:port name="Discovery" binding="tns1:DiscoverySoapBinding">
432                        <wsdlsoap:address location="http://130.246.189.180/axis2/services/DiscoveryServiceMEDIN"/>
433                </wsdl:port>
434        </wsdl:service>
435</wsdl:definitions>
Note: See TracBrowser for help on using the repository browser.