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

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