source: TI01-discovery/branches/ws-Discovery2-MEDIN/discoveryUpgrade/wsdl/DiscoverySchema.xsd @ 6086

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

Changed capitalisation of names with schema & wsdl for internal consistency. Changed service name.

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<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">
4        <!-- Request elements -->
5        <xs:element name="DoSearch" type="tns:SearchType"/>
6        <xs:element name="DoPresent" type="tns:PresentType"/>
7        <xs:element name="GetListNames" nillable="true"/>
8        <xs:element name="GetList" type="tns:GetListType"/>
9        <!-- Response elements -->
10        <xs:element name="DoSearchReturn" type="tns:SearchReturnType"/>
11        <xs:element name="DoPresentReturn" type="tns:PresentReturnType"/>
12        <xs:element name="GetListNamesReturn" type="tns:GetListNamesReturnType"/>
13        <xs:element name="GetListReturn" type="tns:GetListReturnType"/>
14        <!-- Request global types -->
15        <xs:complexType name="PresentType">
16                <xs:sequence>
17                        <xs:element name="Documents" type="tns:DocumentsType" minOccurs="0"/>
18                        <xs:element name="Format" type="xs:string" minOccurs="0">
19                                <xs:annotation>
20                                        <xs:documentation>Required presentation format, value taken from presentFormatList.</xs:documentation>
21                                </xs:annotation>
22                        </xs:element>
23                </xs:sequence>
24        </xs:complexType>
25        <xs:complexType name="SearchType">
26                <xs:sequence>
27                        <xs:element name="SearchCriteria">
28                                <xs:annotation>
29                                        <xs:documentation>Must have at least one of : termSearch, spatialSearch, temporalSearch.</xs:documentation>
30                                </xs:annotation>
31                                <xs:complexType>
32                                        <xs:sequence>
33                                                <xs:element name="TermSearch" type="tns:TermSearchType" minOccurs="0" maxOccurs="unbounded">
34                                                        <xs:annotation>
35                                                                <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>
36                                                        </xs:annotation>
37                                                </xs:element>
38                                                <xs:element name="SpatialSearch" type="tns:SpatialType" minOccurs="0">
39                                                        <xs:annotation>
40                                                                <xs:documentation>Comparison of a single search bounding box to spatial coverage(s) of data.</xs:documentation>
41                                                        </xs:annotation>
42                                                </xs:element>
43                                                <xs:element name="TemporalSearch" type="tns:TemporalType" minOccurs="0">
44                                                        <xs:annotation>
45                                                                <xs:documentation>Comparison of a date or date range to specified/default dates within metadata.</xs:documentation>
46                                                        </xs:annotation>
47                                                </xs:element>
48                                        </xs:sequence>
49                                </xs:complexType>
50                        </xs:element>
51                        <xs:element name="Start" type="xs:positiveInteger" minOccurs="0">
52                                <xs:annotation>
53                                        <xs:documentation>Sequential record number within result set used as first record within returned search response. Useful for pag9ination. Default = 1.</xs:documentation>
54                                </xs:annotation>
55                        </xs:element>
56                        <xs:element name="HowMany" type="xs:positiveInteger" minOccurs="0">
57                                <xs:annotation>
58                                        <xs:documentation>How many records from result set to include in search response. Default = 30.</xs:documentation>
59                                </xs:annotation>
60                        </xs:element>
61                        <xs:element name="OrderBy" type="tns:OrderByType" minOccurs="0" maxOccurs="unbounded">
62                                <xs:annotation>
63                                        <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>
64                                </xs:annotation>
65                        </xs:element>
66                        <xs:element name="Scope" type="xs:string" minOccurs="0" maxOccurs="unbounded">
67                                <xs:annotation>
68                                        <xs:documentation>Optional term used to restrict search to records tagged with a data provider "scope" as listed in scopeList.</xs:documentation>
69                                </xs:annotation>
70                        </xs:element>
71                        <xs:element name="Format" type="xs:string" minOccurs="0">
72                                <xs:annotation>
73                                        <xs:documentation>restrict records to specific original input formats. </xs:documentation>
74                                </xs:annotation>
75                        </xs:element>
76                        <xs:element name="RecordDetail" minOccurs="0">
77                                <xs:annotation>
78                                        <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>
79                                </xs:annotation>
80                        </xs:element>
81                </xs:sequence>
82        </xs:complexType>
83        <xs:complexType name="GetListType">
84                <xs:sequence>
85                        <xs:element name="ListName" type="xs:string"/>
86                </xs:sequence>
87        </xs:complexType>
88        <!-- Response global types -->
89        <xs:complexType name="PresentReturnType">
90                <xs:sequence>
91                        <xs:element name="Status" type="xs:boolean"/>
92                        <xs:element name="StatusMessage" type="xs:string"/>
93                        <xs:element name="Documents" minOccurs="0">
94                                <xs:complexType>
95                                        <xs:complexContent>
96                                                <xs:extension base="tns:DocumentReturnType">
97                                                        <xs:sequence>
98                                                                <xs:element name="documentFull" type="tns:ReturnFullType" maxOccurs="unbounded"/>
99                                                        </xs:sequence>
100                                                </xs:extension>
101                                        </xs:complexContent>
102                                </xs:complexType>
103                        </xs:element>
104                </xs:sequence>
105        </xs:complexType>
106        <xs:complexType name="SearchReturnType">
107                <xs:sequence>
108                        <xs:element name="Status" type="xs:boolean"/>
109                        <xs:element name="StatusMessage" type="xs:string"/>
110                        <xs:element name="ResultId" type="xs:int" minOccurs="0"/>
111                        <xs:element name="Hits" type="xs:int" minOccurs="0"/>
112                        <xs:element name="Documents" minOccurs="0">
113                                <xs:complexType>
114                                        <xs:complexContent>
115                                                <xs:extension base="tns:DocumentsType">
116                                                        <xs:choice>
117                                                                <xs:sequence>
118                                                                        <xs:element ref="tns:DocumentId" maxOccurs="unbounded"/>
119                                                                </xs:sequence>
120                                                                <xs:sequence>
121                                                                        <xs:element name="DocumentBrief" type="tns:ReturnBriefType" maxOccurs="unbounded"/>
122                                                                </xs:sequence>
123                                                                <xs:sequence>
124                                                                        <xs:element name="DocumentSummary" type="tns:ReturnSummaryType" maxOccurs="unbounded"/>
125                                                                </xs:sequence>
126                                                        </xs:choice>
127                                                </xs:extension>
128                                        </xs:complexContent>
129                                </xs:complexType>
130                        </xs:element>
131                </xs:sequence>
132        </xs:complexType>
133        <xs:complexType name="GetListNamesReturnType">
134                <xs:sequence maxOccurs="unbounded">
135                        <xs:element name="ListNames">
136                                <xs:complexType>
137                                        <xs:sequence>
138                                                <xs:element name="ListName" type="xs:string" maxOccurs="unbounded"/>
139                                        </xs:sequence>
140                                </xs:complexType>
141                        </xs:element>
142                </xs:sequence>
143        </xs:complexType>
144        <xs:complexType name="GetListReturnType">
145                <xs:sequence>
146                        <xs:element name="List" minOccurs="0">
147                                <xs:complexType>
148                                        <xs:sequence>
149                                                <xs:element name="ListMember" type="xs:string" maxOccurs="unbounded"/>
150                                        </xs:sequence>
151                                        <xs:attribute name="name" type="xs:string" use="required"/>
152                                </xs:complexType>
153                        </xs:element>
154                </xs:sequence>
155        </xs:complexType>
156        <!-- Other global types-->
157        <xs:complexType name="BoundingBoxType">
158                <xs:all>
159                        <xs:element name="LimitNorth" type="xs:decimal"/>
160                        <xs:element name="LimitSouth" type="xs:decimal"/>
161                        <xs:element name="LimitWest" type="xs:decimal"/>
162                        <xs:element name="LimitEast" type="xs:decimal"/>
163                </xs:all>
164        </xs:complexType>
165        <xs:complexType name="DateRangeType">
166                <xs:sequence>
167                        <xs:element name="Date" type="tns:DateValueType" maxOccurs="2">
168                                <xs:annotation>
169                                        <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>
170                                </xs:annotation>
171                        </xs:element>
172                        <xs:element name="DateRangeTarget" type="xs:string" minOccurs="0">
173                                <xs:annotation>
174                                        <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>
175                                </xs:annotation>
176                        </xs:element>
177                </xs:sequence>
178        </xs:complexType>
179        <xs:complexType name="DocumentsType"/>
180        <xs:simpleType name="OrderByDirectionType">
181                <xs:restriction base="xs:string">
182                        <xs:enumeration value="ascending"/>
183                        <xs:enumeration value="descending"/>
184                </xs:restriction>
185        </xs:simpleType>
186        <xs:complexType name="SpatialType">
187                <xs:sequence>
188                        <xs:element name="BoundingBox" type="tns:BoundingBoxType">
189                                <xs:annotation>
190                                        <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation>
191                                </xs:annotation>
192                        </xs:element>
193                        <xs:element name="SpatialOperator" type="xs:string" minOccurs="0">
194                                <xs:annotation>
195                                        <xs:documentation>Operator used to compare search bounding box with spatial coverage in metadata. Values from spatialOperatorList. Default is "overlaps".</xs:documentation>
196                                </xs:annotation>
197                        </xs:element>
198                        <xs:element name="SpatialReferenceSystem" minOccurs="0">
199                                <xs:annotation>
200                                        <xs:documentation>Spatial reference system used for search bounding box e.g. EPSG:4326, taken from list spatialReferenceSystemList</xs:documentation>
201                                </xs:annotation>
202                        </xs:element>
203                </xs:sequence>
204        </xs:complexType>
205        <xs:complexType name="TermSearchType">
206                <xs:sequence>
207                        <xs:element name="Term" type="xs:string">
208                                <xs:annotation>
209                                        <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>
210                                </xs:annotation>
211                        </xs:element>
212                        <xs:element name="TermTarget" type="xs:string" minOccurs="0" maxOccurs="unbounded">
213                                <xs:annotation>
214                                        <xs:documentation>Metadata field used as target for search. From list termTargetList</xs:documentation>
215                                </xs:annotation>
216                        </xs:element>
217                </xs:sequence>
218        </xs:complexType>
219        <xs:complexType name="TemporalType">
220                <xs:sequence>
221                        <xs:element name="DateRange" type="tns:DateRangeType">
222                                <xs:annotation>
223                                        <xs:documentation>Specify start or end date, or both, along with target date field within metadata.</xs:documentation>
224                                </xs:annotation>
225                        </xs:element>
226                </xs:sequence>
227        </xs:complexType>
228        <xs:complexType name="DocumentReturnType"/>
229        <xs:complexType name="OrderingMetricType">
230                <xs:annotation>
231                        <xs:documentation>Intented to allow passing of ordering information at the present level</xs:documentation>
232                </xs:annotation>
233                <xs:sequence>
234                        <xs:element name="MetricName" type="xs:string"/>
235                        <xs:element name="MetricValue" type="xs:string" minOccurs="0">
236                                <xs:annotation>
237                                        <xs:documentation>Specific value of the metric when used in a 1:1 context with a document return</xs:documentation>
238                                </xs:annotation>
239                        </xs:element>
240                </xs:sequence>
241        </xs:complexType>
242        <xs:complexType name="DateValueType">
243                <xs:sequence>
244                        <xs:element name="DateValue" type="xs:date"/>
245                        <xs:element name="TemporalOperator" type="xs:string" minOccurs="0">
246                                <xs:annotation>
247                                        <xs:documentation>Comparison operator taken from temporalOperatorList. Default = "equals"</xs:documentation>
248                                </xs:annotation>
249                        </xs:element>
250                </xs:sequence>
251        </xs:complexType>
252        <xs:complexType name="OrderByType">
253                <xs:sequence>
254                        <xs:element name="OrderByField" type="xs:string">
255                                <xs:annotation>
256                                        <xs:documentation>Field to use for ordering within result set (and hence search response). Value taken from orderByFieldList</xs:documentation>
257                                </xs:annotation>
258                        </xs:element>
259                        <xs:element name="OrderByDirection" type="tns:OrderByDirectionType" minOccurs="0">
260                                <xs:annotation>
261                                        <xs:documentation>Direction of ordering used in result set and hence search response. Valid values : "ascending" or "descending". Default is descending.</xs:documentation>
262                                </xs:annotation>
263                        </xs:element>
264                </xs:sequence>
265        </xs:complexType>
266        <xs:element name="DocumentId" type="xs:string"/>
267        <xs:complexType name="ReturnBriefType">
268                <xs:complexContent>
269                        <xs:extension base="tns:DocumentsType">
270                                <xs:sequence>
271                                        <xs:element ref="tns:DocumentId"/>
272                                        <xs:element name="Title"/>
273                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
274                                                <xs:annotation>
275                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
276                                                </xs:annotation>
277                                        </xs:element>
278                                </xs:sequence>
279                        </xs:extension>
280                </xs:complexContent>
281        </xs:complexType>
282        <xs:complexType name="ReturnSummaryType">
283                <xs:complexContent>
284                        <xs:extension base="tns:DocumentsType">
285                                <xs:sequence>
286                                        <xs:element ref="tns:DocumentId"/>
287                                        <xs:element name="Title"/>
288                                        <xs:element name="Abstract"/>
289                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
290                                                <xs:annotation>
291                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
292                                                </xs:annotation>
293                                        </xs:element>
294                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
295                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
296                                </xs:sequence>
297                        </xs:extension>
298                </xs:complexContent>
299        </xs:complexType>
300        <xs:complexType name="ReturnFullType">
301                <xs:complexContent>
302                        <xs:extension base="tns:DocumentsType">
303                                <xs:sequence>
304                                        <xs:element ref="tns:DocumentId"/>
305                                        <xs:element name="Title"/>
306                                        <xs:element name="Abstract"/>
307                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0" maxOccurs="unbounded">
308                                                <xs:annotation>
309                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request.</xs:documentation>
310                                                </xs:annotation>
311                                        </xs:element>
312                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0" maxOccurs="unbounded"/>
313                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0" maxOccurs="unbounded"/>
314                                        <xs:element name="Document" type="xs:string">
315                                                <xs:annotation>
316                                                        <xs:documentation>CDATA content of returned XML document.</xs:documentation>
317                                                </xs:annotation>
318                                        </xs:element>
319                                </xs:sequence>
320                        </xs:extension>
321                </xs:complexContent>
322        </xs:complexType>
323</xs:schema>
Note: See TracBrowser for help on using the repository browser.