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

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI01-discovery-API/trunk/MEDINDiscoveryService/src/main/resources/META-INF/DiscoverySchema.xsd@6654
Revision 6654, 15.9 KB checked in by sdonegan, 11 years ago (diff)

Took out lots of \n & \t 's in annotation fields so can present better in xsd view for upload to API docs.

  • Property svn:mime-type set to text/plain
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2        <!--
3                Maurizio Nagni <maurizio.nagni@stcf.ac.uk>
4                (NERC Earth Observation Data Centre)
5        -->
6<xs:schema version="1.0" targetNamespace="http://medin.discovery.services.ndg/schema"
7        elementFormDefault="qualified" attributeFormDefault="unqualified"
8        xmlns:xs="http://www.w3.org/2001/XMLSchema"
9        xmlns:tns="http://medin.discovery.services.ndg/schema">
10
11        <!-- Request elements -->
12        <xs:element name="DoSearch" type="tns:SearchType"/>
13        <xs:element name="DoPresent" type="tns:PresentType"/>
14        <xs:element name="GetListNames" nillable="true"/>
15        <xs:element name="GetList" type="tns:GetListType"/>
16        <xs:complexType name="GetVersion"/>
17        <!-- Response elements -->
18        <xs:element name="DoSearchReturn" type="tns:SearchReturnType"/>
19        <xs:element name="DoPresentReturn" type="tns:PresentReturnType"/>
20        <xs:element name="GetListNamesReturn" type="tns:GetListNamesReturnType"/>
21        <xs:element name="GetListReturn" type="tns:GetListReturnType"/>
22
23        <xs:complexType name="GetVersionReturn">
24                <xs:complexContent>
25                        <xs:extension base="tns:GetVersionReturnType"/>
26                </xs:complexContent>
27        </xs:complexType>
28
29        <!-- Request global types -->
30        <xs:complexType name="PresentType">
31                <xs:sequence>
32                        <xs:element name="Documents" type="tns:SimpleDocument" maxOccurs="unbounded"/>
33
34                        <xs:element name="RetrieveCriteria" type="tns:RetrieveCriteriaType" minOccurs="0">
35                                <xs:annotation>
36                                        <xs:documentation>Comparison of a date dood  or date range to specified/default dates within metadata.</xs:documentation>
37                                </xs:annotation>
38                        </xs:element>
39                </xs:sequence>
40        </xs:complexType>
41
42        <xs:complexType name="RetrieveCriteriaType">
43                <xs:sequence>
44                        <xs:element name="OrderBy" type="tns:OrderByType" minOccurs="0" maxOccurs="unbounded">
45                                <xs:annotation>
46                                        <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>
47                                </xs:annotation>
48                        </xs:element>
49                        <xs:element name="RecordDetail" type="xs:string" minOccurs="0">
50                                <xs:annotation>
51                                        <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.
52                                        </xs:documentation>
53                                </xs:annotation>
54                        </xs:element>
55                </xs:sequence>
56        </xs:complexType>
57
58        <xs:complexType name="SearchType">
59                <xs:sequence>
60                        <xs:element name="SearchCriteria">
61                                <xs:annotation>
62                                        <xs:documentation>Must have at least one of : termSearch, spatialSearch, temporalSearch.</xs:documentation>
63                                </xs:annotation>
64                                <xs:complexType>
65                                        <xs:sequence>
66                                                <xs:element name="TermSearch" type="tns:TermSearchType" minOccurs="0"
67                                                        maxOccurs="unbounded">
68                                                        <xs:annotation>
69                                                                <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>
70                                                        </xs:annotation>
71                                                </xs:element>
72                                                <xs:element name="SpatialSearch" type="tns:SpatialType" minOccurs="0">
73                                                        <xs:annotation>
74                                                                <xs:documentation>Comparison of a single search bounding box to spatial coverage(s) of data.</xs:documentation>
75                                                        </xs:annotation>
76                                                </xs:element>
77                                                <xs:element name="TemporalSearch" type="tns:TemporalType" minOccurs="0">
78                                                        <xs:annotation>
79                                                                <xs:documentation>Comparison of a date or date range to specified/default dates within metadata.</xs:documentation>
80                                                        </xs:annotation>
81                                                </xs:element>
82                                        </xs:sequence>
83                                </xs:complexType>
84                        </xs:element>
85                        <xs:element name="RetrieveCriteria" type="tns:RetrieveCriteriaType" minOccurs="0">
86                                <xs:annotation>
87                                        <xs:documentation>Comparison of a date or date range to specified/default dates within metadata.</xs:documentation>
88                                </xs:annotation>
89                        </xs:element>
90                        <xs:element name="Start" type="xs:unsignedInt" minOccurs="0">
91                                <xs:annotation>
92                                        <xs:documentation>Sequential record number within result set used as first record within returned search response. Useful for pagination.</xs:documentation>
93                                </xs:annotation>
94                        </xs:element>
95                        <xs:element name="HowMany" type="xs:unsignedInt" minOccurs="0">
96                                <xs:annotation>
97                                        <xs:documentation>How many records from result set to include in search response.</xs:documentation>
98                                </xs:annotation>
99                        </xs:element>
100                        <xs:element name="Scope" type="xs:string" minOccurs="0" maxOccurs="unbounded">
101                                <xs:annotation>
102                                        <xs:documentation>Optional term used to restrict search to records tagged with a data provider "scope" as listed in scopeList. </xs:documentation>
103                                </xs:annotation>
104                        </xs:element>
105                        <xs:element name="Format" type="xs:string" minOccurs="0">
106                                <xs:annotation>
107                                        <xs:documentation>restrict records to specific original input formats. </xs:documentation>
108                                </xs:annotation>
109                        </xs:element>
110                </xs:sequence>
111        </xs:complexType>
112
113        <xs:complexType name="GetListType">
114                <xs:sequence>
115                        <xs:element name="listName" type="xs:string"/>
116                </xs:sequence>
117        </xs:complexType>
118
119        <!-- Response global types -->
120        <xs:complexType name="PresentReturnType">
121                <xs:sequence>
122                        <xs:element name="Status" type="xs:boolean"/>
123                        <xs:element name="StatusMessage" type="xs:string"/>
124                        <xs:element name="Documents" minOccurs="0" type="tns:Documents"/>
125                </xs:sequence>
126        </xs:complexType>
127
128        <xs:complexType name="SearchReturnType">
129                <xs:sequence>
130                        <xs:element name="Status" type="xs:boolean"/>
131                        <xs:element name="StatusMessage" type="xs:string"/>
132                        <xs:element name="ResultId" type="xs:int" minOccurs="0"/>
133                        <xs:element name="Hits" type="xs:int" minOccurs="0"/>
134                        <xs:element name="Documents" minOccurs="0" type="tns:Documents"/>
135                </xs:sequence>
136        </xs:complexType>
137
138        <xs:complexType name="GetListNamesReturnType">
139                <xs:sequence maxOccurs="unbounded">
140                        <xs:element name="listNames">
141                                <xs:complexType>
142                                        <xs:sequence>
143                                                <xs:element name="listName" type="xs:string" maxOccurs="unbounded"/>
144                                        </xs:sequence>
145                                </xs:complexType>
146                        </xs:element>
147                </xs:sequence>
148        </xs:complexType>
149
150        <xs:complexType name="GetListReturnType">
151                <xs:sequence>
152                        <xs:element name="list" minOccurs="0">
153                                <xs:complexType>
154                                        <xs:sequence>
155                                                <xs:element name="listMember" type="xs:string" maxOccurs="unbounded"/>
156                                        </xs:sequence>
157                                        <xs:attribute name="name" type="xs:string" use="required"/>
158                                </xs:complexType>
159                        </xs:element>
160                </xs:sequence>
161        </xs:complexType>
162
163        <!-- Other global types-->
164        <xs:complexType name="BoundingBoxType">
165                <xs:all>
166                        <xs:element name="LimitNorth" type="xs:float"/>
167                        <xs:element name="LimitSouth" type="xs:float"/>
168                        <xs:element name="LimitWest" type="xs:float"/>
169                        <xs:element name="LimitEast" type="xs:float"/>
170                </xs:all>
171        </xs:complexType>
172
173        <xs:complexType name="DateRangeType">
174                <xs:sequence>
175                        <xs:element name="Date" type="tns:DateValueType" maxOccurs="2">
176                                <xs:annotation>
177                                        <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>
178                                </xs:annotation>
179                        </xs:element>
180                        <xs:element name="DateRangeTarget" type="xs:string" minOccurs="0">
181                                <xs:annotation>
182                                        <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>
183                                </xs:annotation>
184                        </xs:element>
185                </xs:sequence>
186        </xs:complexType>
187
188        <xs:complexType name="DocumentsType"/>
189
190        <xs:simpleType name="OrderByDirectionType">
191                <xs:restriction base="xs:string">
192                        <xs:enumeration value="ascending"/>
193                        <xs:enumeration value="descending"/>
194                </xs:restriction>
195        </xs:simpleType>
196
197        <xs:complexType name="SpatialType">
198                <xs:sequence>
199                        <xs:element name="BoundingBox" type="tns:BoundingBoxType">
200                                <xs:annotation>
201                                        <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation>
202                                </xs:annotation>
203                        </xs:element>
204                        <xs:element name="SpatialOperator" type="xs:string" minOccurs="0">
205                                <xs:annotation>
206                                        <xs:documentation>Operator used to compare search bounding box with spatial coverage in metadata. Values from spatialOperatorList. Default is "overlaps".</xs:documentation>
207                                </xs:annotation>
208                        </xs:element>
209                        <xs:element name="SpatialReferenceSystem" type="xs:string" minOccurs="0">
210                                <xs:annotation>
211                                        <xs:documentation>Spatial reference system used for search bounding box e.g. EPSG:4326, taken from list spatialReferenceSystemList </xs:documentation>
212                                </xs:annotation>
213                        </xs:element>
214                </xs:sequence>
215        </xs:complexType>
216
217        <xs:complexType name="TermSearchType">
218                <xs:sequence>
219                        <xs:element name="Term" type="xs:string">
220                                <xs:annotation>
221                                        <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>
222                                </xs:annotation>
223                        </xs:element>
224                        <xs:element name="TermTarget" type="xs:string" minOccurs="0" maxOccurs="1">
225                                <xs:annotation>
226                                        <xs:documentation>Metadata field used as target for search. From list termTargetList</xs:documentation>
227                                </xs:annotation>
228                        </xs:element>
229                </xs:sequence>
230        </xs:complexType>
231
232        <xs:complexType name="TemporalType">
233                <xs:sequence>
234                        <xs:element name="DateRange" type="tns:DateRangeType">
235                                <xs:annotation>
236                                        <xs:documentation>Specify start or end date, or both, along with target date field within metadata.</xs:documentation>
237                                </xs:annotation>
238                        </xs:element>
239                </xs:sequence>
240        </xs:complexType>
241
242        <xs:complexType name="DocumentReturnType"/>
243
244        <xs:complexType name="OrderingMetricType">
245                <xs:annotation>
246                        <xs:documentation>Intented to allow passing of ordering information
247                                at the present level</xs:documentation>
248                </xs:annotation>
249                <xs:sequence>
250                        <xs:element name="MetricName" type="xs:string"/>
251                        <xs:element name="MetricValue" type="xs:string" minOccurs="0">
252                                <xs:annotation>
253                                        <xs:documentation>Specific value of the metric when used in a 1:1 context with a document return</xs:documentation>
254                                </xs:annotation>
255                        </xs:element>
256                </xs:sequence>
257        </xs:complexType>
258
259        <xs:complexType name="DateValueType">
260                <xs:sequence>
261                        <xs:element name="DateValue" type="xs:date"/>
262                        <xs:element name="TemporalOperator" type="xs:string" minOccurs="0">
263                                <xs:annotation>
264                                        <xs:documentation>Comparison operator taken from temporalOperatorList. Default = "equals"</xs:documentation>
265                                </xs:annotation>
266                        </xs:element>
267                </xs:sequence>
268        </xs:complexType>
269
270        <xs:complexType name="OrderByType">
271                <xs:sequence>
272                        <xs:element name="OrderByField" type="xs:string">
273                                <xs:annotation>
274                                        <xs:documentation>Field to use for ordering within result set (and hence search response). Value taken from orderByFieldList </xs:documentation>
275                                </xs:annotation>
276                        </xs:element>
277                        <xs:element name="OrderByDirection" type="tns:OrderByDirectionType" minOccurs="0">
278                                <xs:annotation>
279                                        <xs:documentation>Direction of ordering used in result set and hence search response. Valid values : "ascending" or "descending". Default is descending.</xs:documentation>
280                                </xs:annotation>
281                        </xs:element>
282                </xs:sequence>
283        </xs:complexType>
284
285        <xs:complexType name="SimpleDocument">
286                <xs:sequence>
287                        <xs:element name="DocumentId" type="xs:string"/>
288                </xs:sequence>
289        </xs:complexType>
290
291        <xs:complexType name="ReturnSimpleType">
292                <xs:complexContent>
293                        <xs:extension base="tns:SimpleDocument"> </xs:extension>
294                </xs:complexContent>
295        </xs:complexType>
296
297        <xs:complexType name="ReturnBriefType">
298                <xs:complexContent>
299                        <xs:extension base="tns:ReturnSimpleType">
300                                <xs:sequence>
301                                        <xs:element name="AdditionalInformation" type="tns:CustomInfo"/>
302                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
303                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0"
304                                                maxOccurs="unbounded">
305                                                <xs:annotation>
306                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request. </xs:documentation>
307                                                </xs:annotation>
308                                        </xs:element>
309                                </xs:sequence>
310                        </xs:extension>
311                </xs:complexContent>
312        </xs:complexType>
313
314        <xs:complexType name="ReturnSummaryType">
315                <xs:complexContent>
316                        <xs:extension base="tns:ReturnSimpleType">
317                                <xs:sequence>
318                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
319                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0"
320                                                maxOccurs="unbounded">
321                                                <xs:annotation>
322                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request. </xs:documentation>
323                                                </xs:annotation>
324                                        </xs:element>
325                                        <xs:element name="Abstract" type="xs:string" minOccurs="0"/>
326                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0"
327                                                maxOccurs="unbounded"/>
328                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0"
329                                                maxOccurs="unbounded"/>
330                                </xs:sequence>
331                        </xs:extension>
332                </xs:complexContent>
333        </xs:complexType>
334
335        <xs:complexType name="ReturnFullType">
336                <xs:complexContent>
337                        <xs:extension base="tns:ReturnSimpleType">
338                                <xs:sequence>
339                                        <xs:element name="AdditionalInformation" type="tns:CustomInfo"/>
340                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
341                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0"
342                                                maxOccurs="unbounded">
343                                                <xs:annotation>
344                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request. </xs:documentation>
345                                                </xs:annotation>
346                                        </xs:element>
347                                        <xs:element name="Abstract" type="xs:string" minOccurs="0"/>
348                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0"
349                                                maxOccurs="unbounded"/>
350                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0"
351                                                maxOccurs="unbounded"/>
352                                        <xs:element name="Document" type="xs:string">
353                                                <xs:annotation>
354                                                        <xs:documentation>CDATA content of returned XML document. </xs:documentation>
355                                                </xs:annotation>
356                                        </xs:element>
357                                </xs:sequence>
358                        </xs:extension>
359                </xs:complexContent>
360        </xs:complexType>
361
362        <xs:complexType name="GetVersionReturnType">
363                <xs:sequence>
364                        <xs:element name="Version" type="xs:string"/>
365                        <xs:element name="Comment" type="xs:string"/>
366                </xs:sequence>
367        </xs:complexType>
368
369        <xs:complexType name="Documents">
370                <xs:complexContent>
371                        <xs:extension base="tns:DocumentsType">
372                                <xs:choice>
373                                        <xs:sequence>
374                                                <xs:element name="DocumentSimple" type="tns:ReturnSimpleType"
375                                                        maxOccurs="unbounded"/>
376                                        </xs:sequence>
377                                        <xs:sequence>
378                                                <xs:element name="DocumentFull" type="tns:ReturnFullType"
379                                                        maxOccurs="unbounded"/>
380                                        </xs:sequence>
381                                        <xs:sequence>
382                                                <xs:element name="DocumentBrief" type="tns:ReturnBriefType"
383                                                        maxOccurs="unbounded"/>
384                                        </xs:sequence>
385                                        <xs:sequence>
386                                                <xs:element name="DocumentSummary" type="tns:ReturnSummaryType"
387                                                        maxOccurs="unbounded"/>
388                                        </xs:sequence>
389                                </xs:choice>
390                        </xs:extension>
391                </xs:complexContent>
392        </xs:complexType>
393
394
395        <xs:complexType name="CustomInfo">
396                <xs:annotation>
397                        <xs:documentation>Customizable part of the document</xs:documentation>
398                </xs:annotation>
399                <xs:sequence>
400                        <xs:element name="Authors" type="xs:string"/>
401                        <xs:element name="Parameters" type="xs:string"/>
402                        <xs:element name="ResourceType" type="xs:string"/>
403                        <xs:element name="TopicCategory" type="xs:string"/>
404                        <xs:element name="Lineage" type="xs:string"/>
405                        <xs:element name="LimitationsPublicAccess" type="xs:string"/>
406                        <xs:element name="DataOriginator" type="xs:string"/>
407                        <xs:element name="OriginalFormatName" type="xs:string"/>               
408                </xs:sequence>
409        </xs:complexType>
410</xs:schema>
Note: See TracBrowser for help on using the repository browser.