source: mauRepo/revitalizationProject/branches/MEDIN/discoverySchema/src/main/resources/DiscoverySchema.xsd @ 8115

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/mauRepo/revitalizationProject/branches/MEDIN/discoverySchema/src/main/resources/DiscoverySchema.xsd@8115
Revision 8115, 18.3 KB checked in by mnagni, 8 years ago (diff)

updated the logging system

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