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

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

Fixed problem in SearchReturnType? causing "violation of unique particle attribution rule" in xmlbeans when doing generatestubs.

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" 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:simpleType name="orderByDirectionType">
183                <xs:restriction base="xs:string">
184                        <xs:enumeration value="ascending"/>
185                        <xs:enumeration value="descending"/>
186                </xs:restriction>
187        </xs:simpleType>
188        <xs:complexType name="SpatialType">
189                <xs:sequence>
190                        <xs:element name="BoundingBox" type="tns:BoundingBoxType">
191                                <xs:annotation>
192                                        <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation>
193                                </xs:annotation>
194                        </xs:element>
195                        <xs:element name="spatialOperator" type="xs:string" minOccurs="0">
196                                <xs:annotation>
197                                        <xs:documentation>Operator used to compare search bounding box with spatial coverage in metadata. Values from spatialOperatorList. Default is "overlaps".</xs:documentation>
198                                </xs:annotation>
199                        </xs:element>
200                        <xs:element name="spatialReferenceSystem" minOccurs="0">
201                                <xs:annotation>
202                                        <xs:documentation>Spatial reference system used for search bounding box e.g. EPSG:4326, taken from list spatialReferenceSystemList</xs:documentation>
203                                </xs:annotation>
204                        </xs:element>
205                </xs:sequence>
206        </xs:complexType>
207        <xs:complexType name="TermSearchType">
208                <xs:sequence>
209                        <xs:element name="term" type="xs:string">
210                                <xs:annotation>
211                                        <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>
212                                </xs:annotation>
213                        </xs:element>
214                        <xs:element name="termTarget" type="xs:string" minOccurs="0" maxOccurs="unbounded">
215                                <xs:annotation>
216                                        <xs:documentation>Metadata field used as target for search. From list termTargetList</xs:documentation>
217                                </xs:annotation>
218                        </xs:element>
219                </xs:sequence>
220        </xs:complexType>
221        <xs:complexType name="TemporalType">
222                <xs:sequence>
223                        <xs:element name="DateRange" type="tns:DateRangeType">
224                                <xs:annotation>
225                                        <xs:documentation>Specify start or end date, or both, along with target date field within metadata.</xs:documentation>
226                                </xs:annotation>
227                        </xs:element>
228                </xs:sequence>
229        </xs:complexType>
230        <xs:complexType name="DocumentReturnType"/>
231        <xs:complexType name="OrderingMetricType">
232                <xs:annotation>
233                        <xs:documentation>Intented to allow passing of ordering information at the present level</xs:documentation>
234                </xs:annotation>
235                <xs:sequence>
236                        <xs:element name="metricName" type="xs:string"/>
237                        <xs:element name="metricValue" type="xs:string" minOccurs="0">
238                                <xs:annotation>
239                                        <xs:documentation>Specific value of the metric when used in a 1:1 context with a document return</xs:documentation>
240                                </xs:annotation>
241                        </xs:element>
242                </xs:sequence>
243        </xs:complexType>
244        <xs:complexType name="DateValueType">
245                <xs:sequence>
246                        <xs:element name="DateValue" type="xs:date"/>
247                        <xs:element name="TemporalOperator" type="xs:string" minOccurs="0">
248                                <xs:annotation>
249                                        <xs:documentation>Comparison operator taken from temporalOperatorList. Default = "equals"</xs:documentation>
250                                </xs:annotation>
251                        </xs:element>
252                </xs:sequence>
253        </xs:complexType>
254        <xs:complexType name="OrderByType">
255                <xs:sequence>
256                        <xs:element name="orderByField" type="xs:string">
257                                <xs:annotation>
258                                        <xs:documentation>Field to use for ordering within result set (and hence search response). Value taken from orderByFieldList</xs:documentation>
259                                </xs:annotation>
260                        </xs:element>
261                        <xs:element name="orderByDirection" type="tns:orderByDirectionType" minOccurs="0">
262                                <xs:annotation>
263                                        <xs:documentation>Direction of ordering used in result set and hence search response. Valid values : "ascending" or "descending". Default is descending.</xs:documentation>
264                                </xs:annotation>
265                        </xs:element>
266                </xs:sequence>
267        </xs:complexType>
268        <xs:element name="documentId" type="xs:string"/>
269        <xs:complexType name="ReturnBriefType">
270                <xs:complexContent>
271                        <xs:extension base="tns:DocumentsType">
272                                <xs:sequence>
273                                        <xs:element ref="tns:documentId"/>
274                                        <xs:element name="title"/>
275                                        <xs:element name="orderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
276                                                <xs:annotation>
277                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
278                                                </xs:annotation>
279                                        </xs:element>
280                                </xs:sequence>
281                        </xs:extension>
282                </xs:complexContent>
283        </xs:complexType>
284        <xs:complexType name="ReturnSummaryType">
285                <xs:complexContent>
286                        <xs:extension base="tns:DocumentsType">
287                                <xs:sequence>
288                                        <xs:element ref="tns:documentId"/>
289                                        <xs:element name="title"/>
290                                        <xs:element name="abstract"/>
291                                        <xs:element name="orderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
292                                                <xs:annotation>
293                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
294                                                </xs:annotation>
295                                        </xs:element>
296                                        <xs:element name="temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
297                                        <xs:element name="spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
298                                </xs:sequence>
299                        </xs:extension>
300                </xs:complexContent>
301        </xs:complexType>
302        <xs:complexType name="ReturnFullType">
303                <xs:complexContent>
304                        <xs:extension base="tns:DocumentsType">
305                                <xs:sequence>
306                                        <xs:element ref="tns:documentId"/>
307                                        <xs:element name="title"/>
308                                        <xs:element name="abstract"/>
309                                        <xs:element name="orderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
310                                                <xs:annotation>
311                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
312                                                </xs:annotation>
313                                        </xs:element>
314                                        <xs:element name="temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
315                                        <xs:element name="spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
316                                        <xs:element name="document" type="xs:string">
317                                                <xs:annotation>
318                                                        <xs:documentation>CDATA content of returned XML document.</xs:documentation>
319                                                </xs:annotation>
320                                        </xs:element>
321                                </xs:sequence>
322                        </xs:extension>
323                </xs:complexContent>
324        </xs:complexType>
325                </xs:schema>
326        </wsdl:types>
327        <wsdl:message name="doSearchRequest">
328                <wsdl:part name="part" element="tns1:doSearch"/>
329        </wsdl:message>
330        <wsdl:message name="doSearchResponse">
331                <wsdl:part name="part" element="tns1:doSearchReturn"/>
332        </wsdl:message>
333        <wsdl:message name="getListNamesRequest">
334                <wsdl:part name="part" element="tns1:getListNames"/>
335        </wsdl:message>
336        <wsdl:message name="getListRequest">
337                <wsdl:part name="part" element="tns1:getList"/>
338        </wsdl:message>
339        <wsdl:message name="doPresentRequest">
340                <wsdl:part name="part" element="tns1:doPresent"/>
341        </wsdl:message>
342        <wsdl:message name="doPresentResponse">
343                <wsdl:part name="part" element="tns1:doPresentReturn"/>
344        </wsdl:message>
345        <wsdl:message name="getListNamesResponse">
346                <wsdl:part name="part" element="tns1:getListNamesReturn"/>
347        </wsdl:message>
348        <wsdl:message name="getListResponse">
349                <wsdl:part name="part" element="tns1:getListReturn"/>
350        </wsdl:message>
351        <wsdl:portType name="Discovery">
352                <wsdl:operation name="doSearch">
353                        <wsdl:input name="doSearchRequest" message="tns1:doSearchRequest"/>
354                        <wsdl:output name="doSearchResponse" message="tns1:doSearchResponse"/>
355                </wsdl:operation>
356                <wsdl:operation name="doPresent">
357                        <wsdl:input name="doPresentRequest" message="tns1:doPresentRequest"/>
358                        <wsdl:output name="doPresentResponse" message="tns1:doPresentResponse"/>
359                </wsdl:operation>
360                <wsdl:operation name="getListNames">
361                        <wsdl:input name="getListNamesRequest" message="tns1:getListNamesRequest"/>
362                        <wsdl:output name="getListNamesResponse" message="tns1:getListNamesResponse"/>
363                </wsdl:operation>
364                <wsdl:operation name="getList">
365                        <wsdl:input name="getListRequest" message="tns1:getListRequest"/>
366                        <wsdl:output name="getListResponse" message="tns1:getListResponse"/>
367                </wsdl:operation>
368        </wsdl:portType>
369        <wsdl:binding name="DiscoverySoapBinding" type="tns1:Discovery">
370                <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
371                <wsdl:operation name="doSearch">
372                        <wsdlsoap:operation/>
373                        <wsdl:input>
374                                <wsdlsoap:body use="literal"/>
375                        </wsdl:input>
376                        <wsdl:output>
377                                <wsdlsoap:body use="literal"/>
378                        </wsdl:output>
379                </wsdl:operation>
380                <wsdl:operation name="doPresent">
381                        <wsdlsoap:operation/>
382                        <wsdl:input>
383                                <wsdlsoap:body use="literal"/>
384                        </wsdl:input>
385                        <wsdl:output>
386                                <wsdlsoap:body use="literal"/>
387                        </wsdl:output>
388                </wsdl:operation>
389                <wsdl:operation name="getListNames">
390                        <wsdlsoap:operation/>
391                        <wsdl:input>
392                                <wsdlsoap:body use="literal"/>
393                        </wsdl:input>
394                        <wsdl:output>
395                                <wsdlsoap:body use="literal"/>
396                        </wsdl:output>
397                </wsdl:operation>
398                <wsdl:operation name="getList">
399                        <wsdlsoap:operation/>
400                        <wsdl:input>
401                                <wsdlsoap:body use="literal"/>
402                        </wsdl:input>
403                        <wsdl:output>
404                                <wsdlsoap:body use="literal"/>
405                        </wsdl:output>
406                </wsdl:operation>
407        </wsdl:binding>
408        <wsdl:service name="DiscoveryService">
409                <wsdl:port name="Discovery" binding="tns1:DiscoverySoapBinding">
410                        <wsdlsoap:address location="http://130.246.189.180/axis2/services/DiscoveryService"/>
411                </wsdl:port>
412        </wsdl:service>
413</wsdl:definitions>
Note: See TracBrowser for help on using the repository browser.