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

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

Added the new CustomInfo? in the Brief and Summary document

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