source: TI01-discovery-API/trunk/src/main/resources/META-INF/Discovery.wsdl @ 6456

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI01-discovery-API/trunk/src/main/resources/META-INF/Discovery.wsdl@6456
Revision 6456, 18.7 KB checked in by mnagni, 10 years ago (diff)

First commit for the MARIN Java-Maven enabled WebService?

  • Property svn:mime-type set to text/plain
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" type="xs:string" 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"/>"RecordDetail"
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="DocumentFull" type="tns:ReturnFullType" maxOccurs="unbounded"/>
140                                                                </xs:sequence>
141                                                                <xs:sequence>
142                                                                        <xs:element name="DocumentBrief" type="tns:ReturnBriefType" maxOccurs="unbounded"/>
143                                                                </xs:sequence>
144                                                                <xs:sequence>
145                                                                        <xs:element name="DocumentSummary" type="tns:ReturnSummaryType" maxOccurs="unbounded"/>
146                                                                </xs:sequence>
147                                                        </xs:choice>
148                                                </xs:extension>
149                                        </xs:complexContent>
150                                </xs:complexType>
151                        </xs:element>
152                </xs:sequence>
153        </xs:complexType>
154        <xs:complexType name="GetListNamesReturnType">
155                <xs:sequence maxOccurs="unbounded">
156                        <xs:element name="listNames">
157                                <xs:complexType>
158                                        <xs:sequence>
159                                                <xs:element name="listName" type="xs:string" maxOccurs="unbounded"/>
160                                        </xs:sequence>
161                                </xs:complexType>
162                        </xs:element>
163                </xs:sequence>
164        </xs:complexType>
165        <xs:complexType name="GetListReturnType">
166                <xs:sequence>
167                        <xs:element name="list" minOccurs="0">
168                                <xs:complexType>
169                                        <xs:sequence>
170                                                <xs:element name="listMember" type="xs:string" maxOccurs="unbounded"/>
171                                        </xs:sequence>
172                                        <xs:attribute name="name" type="xs:string" use="required"/>
173                                </xs:complexType>
174                        </xs:element>
175                </xs:sequence>
176        </xs:complexType>
177        <!-- Other global types-->
178        <xs:complexType name="BoundingBoxType">
179                <xs:all>
180                        <xs:element name="LimitNorth" type="xs:decimal"/>
181                        <xs:element name="LimitSouth" type="xs:decimal"/>
182                        <xs:element name="LimitWest" type="xs:decimal"/>
183                        <xs:element name="LimitEast" type="xs:decimal"/>
184                </xs:all>
185        </xs:complexType>
186        <xs:complexType name="DateRangeType">
187                <xs:sequence>
188                        <xs:element name="Date" type="tns:DateValueType" maxOccurs="2">
189                                <xs:annotation>
190                                        <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>
191                                </xs:annotation>
192                        </xs:element>
193                        <xs:element name="DateRangeTarget" type="xs:string" minOccurs="0">
194                                <xs:annotation>
195                                        <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>
196                                </xs:annotation>
197                        </xs:element>
198                </xs:sequence>
199        </xs:complexType>
200        <xs:complexType name="DocumentsType"/>
201        <xs:simpleType name="OrderByDirectionType">
202                <xs:restriction base="xs:string">
203                        <xs:enumeration value="ascending"/>
204                        <xs:enumeration value="descending"/>
205                </xs:restriction>
206        </xs:simpleType>
207        <xs:complexType name="SpatialType">
208                <xs:sequence>
209                        <xs:element name="BoundingBox" type="tns:BoundingBoxType">
210                                <xs:annotation>
211                                        <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation>
212                                </xs:annotation>
213                        </xs:element>
214                        <xs:element name="SpatialOperator" type="xs:string" minOccurs="0">
215                                <xs:annotation>
216                                        <xs:documentation>Operator used to compare search bounding box with spatial coverage in metadata. Values from spatialOperatorList. Default is "overlaps".</xs:documentation>
217                                </xs:annotation>
218                        </xs:element>
219                        <xs:element name="SpatialReferenceSystem" minOccurs="0">
220                                <xs:annotation>
221                                        <xs:documentation>Spatial reference system used for search bounding box e.g. EPSG:4326, taken from list spatialReferenceSystemList</xs:documentation>
222                                </xs:annotation>
223                        </xs:element>
224                </xs:sequence>
225        </xs:complexType>
226        <xs:complexType name="TermSearchType">
227                <xs:sequence>
228                        <xs:element name="Term" type="xs:string">
229                                <xs:annotation>
230                                        <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>
231                                </xs:annotation>
232                        </xs:element>
233                        <xs:element name="TermTarget" type="xs:string" minOccurs="0" maxOccurs="unbounded">
234                                <xs:annotation>
235                                        <xs:documentation>Metadata field used as target for search. From list termTargetList</xs:documentation>
236                                </xs:annotation>
237                        </xs:element>
238                </xs:sequence>
239        </xs:complexType>
240        <xs:complexType name="TemporalType">
241                <xs:sequence>
242                        <xs:element name="DateRange" type="tns:DateRangeType">
243                                <xs:annotation>
244                                        <xs:documentation>Specify start or end date, or both, along with target date field within metadata.</xs:documentation>
245                                </xs:annotation>
246                        </xs:element>
247                </xs:sequence>
248        </xs:complexType>
249        <xs:complexType name="DocumentReturnType"/>
250        <xs:complexType name="OrderingMetricType">
251                <xs:annotation>
252                        <xs:documentation>Intented to allow passing of ordering information at the present level</xs:documentation>
253                </xs:annotation>
254                <xs:sequence>
255                        <xs:element name="MetricName" type="xs:string"/>
256                        <xs:element name="MetricValue" type="xs:string" minOccurs="0">
257                                <xs:annotation>
258                                        <xs:documentation>Specific value of the metric when used in a 1:1 context with a document return</xs:documentation>
259                                </xs:annotation>ndg.noc.soton.ac.uk__DIF__ndg.noc.soton.ac.uk__DIF__NOCSDAT187.xml
260                        </xs:element>
261                </xs:sequence>
262        </xs:complexType>
263        <xs:complexType name="DateValueType">
264                <xs:sequence>
265                        <xs:element name="DateValue" type="xs:date"/>
266                        <xs:element name="TemporalOperator" type="xs:string" minOccurs="0">
267                                <xs:annotation>
268                                        <xs:documentation>Comparison operator taken from temporalOperatorList. Default = "equals"</xs:documentation>
269                                </xs:annotation>
270                        </xs:element>
271                </xs:sequence>
272        </xs:complexType>
273        <xs:complexType name="OrderByType">
274                <xs:sequence>
275                        <xs:element name="OrderByField" type="xs:string">
276                                <xs:annotation>
277                                        <xs:documentation>Field to use for ordering within result set (and hence search response). Value taken from orderByFieldList</xs:documentation>
278                                </xs:annotation>
279                        </xs:element>
280                        <xs:element name="OrderByDirection" type="tns:OrderByDirectionType" minOccurs="0">
281                                <xs:annotation>
282                                        <xs:documentation>Direction of ordering used in result set and hence search response. Valid values : "ascending" or "descending". Default is descending.</xs:documentation>
283                                </xs:annotation>
284                        </xs:element>
285                </xs:sequence>
286        </xs:complexType>
287        <xs:element name="DocumentId" type="xs:string"/>
288        <xs:complexType name="ReturnBriefType">
289                <xs:complexContent>
290                        <xs:extension base="tns:DocumentsType">
291                                <xs:sequence>
292                                        <xs:element ref="tns:DocumentId"/>
293                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
294                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
295                                                <xs:annotation>
296                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
297                                                </xs:annotation>
298                                        </xs:element>
299                                </xs:sequence>
300                        </xs:extension>
301                </xs:complexContent>
302        </xs:complexType>
303        <xs:complexType name="ReturnSummaryType">
304                <xs:complexContent>
305                        <xs:extension base="tns:DocumentsType">
306                                <xs:sequence>
307                                        <xs:element ref="tns:DocumentId"/>
308                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
309                                        <xs:element name="Abstract" type="xs:string" minOccurs="0"/>
310                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
311                                                <xs:annotation>
312                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
313                                                </xs:annotation>
314                                        </xs:element>
315                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
316                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
317                                </xs:sequence>
318                        </xs:extension>
319                </xs:complexContent>
320        </xs:complexType>
321        <xs:complexType name="ReturnFullType">
322                <xs:complexContent>
323                        <xs:extension base="tns:DocumentsType">
324                                <xs:sequence>
325                                        <xs:element ref="tns:DocumentId"/>
326                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
327                                        <xs:element name="Abstract" type="xs:string" minOccurs="0"/>
328                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
329                                                <xs:annotation>
330                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
331                                                </xs:annotation>
332                                        </xs:element>
333                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
334                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
335                                        <xs:element name="Document" type="xs:string">
336                                                <xs:annotation>
337                                                        <xs:documentation>CDATA content of returned XML document.</xs:documentation>
338                                                </xs:annotation>
339                                        </xs:element>
340                                </xs:sequence>
341                        </xs:extension>
342                </xs:complexContent>
343        </xs:complexType>
344        <xs:complexType name="GetVersionReturnType">
345                <xs:sequence>
346                        <xs:element name="Version" type="xs:string"/>
347                        <xs:element name="Comment" type="xs:string"/>
348                </xs:sequence>
349        </xs:complexType>
350</xs:schema>
351        </wsdl:types>
352        <wsdl:message name="doSearchRequest">
353                <wsdl:part name="part" element="tns1:DoSearch"/>
354        </wsdl:message>
355        <wsdl:message name="doSearchResponse">
356                <wsdl:part name="part" element="tns1:DoSearchReturn"/>
357        </wsdl:message>
358        <wsdl:message name="getListNamesRequest">
359                <wsdl:part name="part" element="tns1:GetListNames"/>
360        </wsdl:message>
361        <wsdl:message name="getListRequest">
362                <wsdl:part name="part" element="tns1:GetList"/>
363        </wsdl:message>
364        <wsdl:message name="doPresentRequest">
365                <wsdl:part name="part" element="tns1:DoPresent"/>
366        </wsdl:message>
367        <wsdl:message name="doPresentResponse">
368                <wsdl:part name="part" element="tns1:DoPresentReturn"/>
369        </wsdl:message>
370        <wsdl:message name="getListNamesResponse">
371                <wsdl:part name="part" element="tns1:GetListNamesReturn"/>
372        </wsdl:message>
373        <wsdl:message name="getListResponse">
374                <wsdl:part name="part" element="tns1:GetListReturn"/>
375        </wsdl:message>
376        <wsdl:portType name="Discovery">
377                <wsdl:operation name="doSearch">
378                        <wsdl:input name="doSearchRequest" message="tns1:doSearchRequest"/>
379                        <wsdl:output name="doSearchResponse" message="tns1:doSearchResponse"/>
380                </wsdl:operation>
381                <wsdl:operation name="doPresent">
382                        <wsdl:input name="doPresentRequest" message="tns1:doPresentRequest"/>
383                        <wsdl:output name="doPresentResponse" message="tns1:doPresentResponse"/>
384                </wsdl:operation>
385                <wsdl:operation name="getListNames">
386                        <wsdl:input name="getListNamesRequest" message="tns1:getListNamesRequest"/>
387                        <wsdl:output name="getListNamesResponse" message="tns1:getListNamesResponse"/>
388                </wsdl:operation>
389                <wsdl:operation name="getList">
390                        <wsdl:input name="getListRequest" message="tns1:getListRequest"/>
391                        <wsdl:output name="getListResponse" message="tns1:getListResponse"/>
392                </wsdl:operation>
393        </wsdl:portType>
394        <wsdl:binding name="DiscoverySoapBinding" type="tns1:Discovery">
395                <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
396                <wsdl:operation name="doSearch">
397                        <wsdlsoap:operation/>
398                        <wsdl:input>
399                                <wsdlsoap:body use="literal"/>
400                        </wsdl:input>
401                        <wsdl:output>
402                                <wsdlsoap:body use="literal"/>
403                        </wsdl:output>
404                </wsdl:operation>
405                <wsdl:operation name="doPresent">
406                        <wsdlsoap:operation/>
407                        <wsdl:input>
408                                <wsdlsoap:body use="literal"/>
409                        </wsdl:input>
410                        <wsdl:output>
411                                <wsdlsoap:body use="literal"/>
412                        </wsdl:output>
413                </wsdl:operation>
414                <wsdl:operation name="getListNames">
415                        <wsdlsoap:operation/>
416                        <wsdl:input>
417                                <wsdlsoap:body use="literal"/>
418                        </wsdl:input>
419                        <wsdl:output>
420                                <wsdlsoap:body use="literal"/>
421                        </wsdl:output>
422                </wsdl:operation>
423                <wsdl:operation name="getList">
424                        <wsdlsoap:operation/>
425                        <wsdl:input>
426                                <wsdlsoap:body use="literal"/>
427                        </wsdl:input>
428                        <wsdl:output>
429                                <wsdlsoap:body use="literal"/>
430                        </wsdl:output>
431                </wsdl:operation>
432        </wsdl:binding>
433        <wsdl:service name="DiscoveryServiceMEDIN">
434                <wsdl:port name="Discovery" binding="tns1:DiscoverySoapBinding">
435                        <wsdlsoap:address location="http://130.246.189.180/axis2/services/DiscoveryServiceMEDIN"/>
436                </wsdl:port>
437        </wsdl:service>
438</wsdl:definitions>
Note: See TracBrowser for help on using the repository browser.