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

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI01-discovery/branches/ws-Discovery2-MEDIN/discoveryUpgrade/wsdl/Discovery.wsdl@5970
Revision 5970, 18.4 KB checked in by mpritcha, 12 years ago (diff)

Initial updates sketching out new API for MEDIN.

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