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

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