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

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

Added a missed "Format" field in the doPresent element

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