source: RevitalizationWS/ws/DiscoveryService/trunk/src/main/resources/META-INF/DiscoverySchema.xsd @ 7217

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/RevitalizationWS/ws/DiscoveryService/trunk/src/main/resources/META-INF/DiscoverySchema.xsd@7217
Revision 7217, 17.2 KB checked in by mnagni, 9 years ago (diff)

First commit for the DiscoveryService?

  • Property svn:mime-type set to text/plain
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Steve Donegan (NERC Earth Observation Data Centre) -->
3<!--
4                Maurizio Nagni <maurizio.nagni@stcf.ac.uk>
5                (NERC Earth Observation Data Centre)
6        -->
7<xs:schema targetNamespace="http://schemas.services.ndg/discovery"
8        elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"
9        xmlns:xs="http://www.w3.org/2001/XMLSchema"
10        xmlns:tns="http://schemas.services.ndg/discovery">
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        <xs:complexType name="GetVersionReturn">
23                <xs:complexContent>
24                        <xs:extension base="tns:GetVersionReturnType"/>
25                </xs:complexContent>
26        </xs:complexType>
27        <!-- Request global types -->
28        <xs:complexType name="PresentType">
29                <xs:sequence>
30                        <xs:element name="Documents" type="tns:SimpleDocument" maxOccurs="unbounded"/>
31                        <xs:element name="RetrieveCriteria" type="tns:RetrieveCriteriaType" minOccurs="0">
32                                <xs:annotation>
33                                        <xs:documentation>Comparison of a date dood  or date range to specified/default dates within metadata.</xs:documentation>
34                                </xs:annotation>
35                        </xs:element>
36                        <xs:element name="TicketId" type="xs:string" minOccurs="0">
37                                <xs:annotation>
38                                        <xs:documentation>Optional term that allow the client to track the request/response messages</xs:documentation>
39                                </xs:annotation>
40                        </xs:element>
41                </xs:sequence>
42        </xs:complexType>
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 records in the result set and hence the search response. Direction can be specified alongside each field.</xs:documentation>
48                                </xs:annotation>
49                        </xs:element>
50                        <xs:element name="RecordDetail" type="xs:string" minOccurs="0">
51                                <xs:annotation>
52                                        <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>
53                                </xs:annotation>
54                        </xs:element>
55                        <xs:element name="MetadataFormat" type="xs:string" minOccurs="0"/>
56                </xs:sequence>
57        </xs:complexType>
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>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>
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="OriginalFormat" type="xs:string" minOccurs="0">
106                                <xs:annotation>
107                                        <xs:documentation>Optional term used to restrict  search to records where original ingested xml format matches that in OriginalFormatList</xs:documentation>
108                                </xs:annotation>
109                        </xs:element>
110                        <xs:element name="TicketId" type="xs:string" minOccurs="0">
111                                <xs:annotation>
112                                        <xs:documentation>Optional term that allow the client to track the request/response messages</xs:documentation>
113                                </xs:annotation>
114                        </xs:element>
115                </xs:sequence>
116        </xs:complexType>
117        <xs:complexType name="GetListType">
118                <xs:sequence>
119                        <xs:element name="listName" type="xs:string"/>
120                </xs:sequence>
121        </xs:complexType>
122        <!-- Response global types -->
123        <xs:complexType name="PresentReturnType">
124                <xs:sequence>
125                        <xs:element name="Status" type="xs:boolean"/>
126                        <xs:element name="StatusMessage" type="xs:string"/>
127                        <xs:element name="TicketId" type="xs:string" minOccurs="0">
128                                <xs:annotation>
129                                        <xs:documentation>Optional term that allow the client to track the request/response messages</xs:documentation>
130                                </xs:annotation>
131                        </xs:element>
132                        <xs:element name="Documents" type="tns:Documents" minOccurs="0"/>
133                </xs:sequence>
134        </xs:complexType>
135        <xs:complexType name="SearchReturnType">
136                <xs:sequence>
137                        <xs:element name="Status" type="xs:boolean"/>
138                        <xs:element name="StatusMessage" type="xs:string"/>
139                        <xs:element name="TicketId" type="xs:string" minOccurs="0">
140                                <xs:annotation>
141                                        <xs:documentation>Optional term that allow the client to track the request/response messages</xs:documentation>
142                                </xs:annotation>
143                        </xs:element>
144                        <xs:element name="Hits" type="xs:int" minOccurs="0"/>
145                        <xs:element name="Documents" type="tns:Documents" minOccurs="0"/>
146                </xs:sequence>
147        </xs:complexType>
148        <xs:complexType name="GetListNamesReturnType">
149                <xs:sequence maxOccurs="unbounded">
150                        <xs:element name="listNames">
151                                <xs:complexType>
152                                        <xs:sequence>
153                                                <xs:element name="listName" type="xs:string" maxOccurs="unbounded"/>
154                                        </xs:sequence>
155                                </xs:complexType>
156                        </xs:element>
157                </xs:sequence>
158        </xs:complexType>
159        <xs:complexType name="GetListReturnType">
160                <xs:sequence>
161                        <xs:element name="list" minOccurs="0">
162                                <xs:complexType>
163                                        <xs:sequence>
164                                                <xs:element name="listMember" type="xs:string" maxOccurs="unbounded"/>
165                                        </xs:sequence>
166                                        <xs:attribute name="name" type="xs:string" use="required"/>
167                                </xs:complexType>
168                        </xs:element>
169                </xs:sequence>
170        </xs:complexType>
171        <!-- Other global types-->
172        <xs:complexType name="BoundingBoxType">
173                <xs:all>
174                        <xs:element name="LimitNorth" type="xs:float"/>
175                        <xs:element name="LimitSouth" type="xs:float"/>
176                        <xs:element name="LimitWest" type="xs:float"/>
177                        <xs:element name="LimitEast" type="xs:float"/>
178                </xs:all>
179        </xs:complexType>
180        <xs:complexType name="DateRangeType">
181                <xs:sequence>
182                        <xs:element name="Date" type="tns:DateValueType" maxOccurs="2">
183                                <xs:annotation>
184                                        <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>
185                                </xs:annotation>
186                        </xs:element>
187                        <xs:element name="DateRangeTarget" type="xs:string" minOccurs="0">
188                                <xs:annotation>
189                                        <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>
190                                </xs:annotation>
191                        </xs:element>
192                </xs:sequence>
193        </xs:complexType>
194        <xs:complexType name="DocumentsType"/>
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        <xs:complexType name="SpatialType">
202                <xs:sequence>
203                        <xs:element name="BoundingBox" type="tns:BoundingBoxType">
204                                <xs:annotation>
205                                        <xs:documentation>Bounding box with coordinates by default in EPSG:4326 (lat/lon)</xs:documentation>
206                                </xs:annotation>
207                        </xs:element>
208                        <xs:element name="SpatialOperator" type="xs:string" minOccurs="0">
209                                <xs:annotation>
210                                        <xs:documentation>Operator used to compare search bounding box with spatial coverage in metadata. Values from spatialOperatorList. Default is "overlaps".</xs:documentation>
211                                </xs:annotation>
212                        </xs:element>
213                        <xs:element name="SpatialReferenceSystem" type="xs:string" minOccurs="0">
214                                <xs:annotation>
215                                        <xs:documentation>Spatial reference system used for search bounding box e.g. EPSG:4326, taken from list spatialReferenceSystemList </xs:documentation>
216                                </xs:annotation>
217                        </xs:element>
218                </xs:sequence>
219        </xs:complexType>
220        <xs:complexType name="TermSearchType">
221                <xs:sequence>
222                        <xs:element name="Term" type="xs:string" minOccurs="0">
223                                <xs:annotation>
224                                        <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>
225                                </xs:annotation>
226                        </xs:element>
227                        <xs:element name="TermTarget" type="xs:string" minOccurs="0">
228                                <xs:annotation>
229                                        <xs:documentation>Metadata field used as target for search. From list termTargetList</xs:documentation>
230                                </xs:annotation>
231                        </xs:element>
232                </xs:sequence>
233                <xs:attribute name="id" type="xs:short" use="required"/>
234                <xs:attribute name="operator" type="xs:string"/>
235        </xs:complexType>
236        <xs:complexType name="TemporalType">
237                <xs:sequence>
238                        <xs:element name="DateRange" type="tns:DateRangeType">
239                                <xs:annotation>
240                                        <xs:documentation>Specify start or end date, or both, along with target date field within metadata.</xs:documentation>
241                                </xs:annotation>
242                        </xs:element>
243                </xs:sequence>
244        </xs:complexType>
245        <xs:complexType name="DocumentReturnType"/>
246        <xs:complexType name="OrderingMetricType">
247                <xs:annotation>
248                        <xs:documentation>Intented to allow passing of ordering information
249                                at the present level</xs:documentation>
250                </xs:annotation>
251                <xs:sequence>
252                        <xs:element name="MetricName" type="xs:string"/>
253                        <xs:element name="MetricValue" type="xs:string" minOccurs="0">
254                                <xs:annotation>
255                                        <xs:documentation>Specific value of the metric when used in a 1:1 context with a document return</xs:documentation>
256                                </xs:annotation>
257                        </xs:element>
258                </xs:sequence>
259        </xs:complexType>
260        <xs:complexType name="DateValueType">
261                <xs:sequence>
262                        <xs:element name="DateValue" type="xs:date"/>
263                        <xs:element name="TemporalOperator" type="xs:string" minOccurs="0">
264                                <xs:annotation>
265                                        <xs:documentation>Comparison operator taken from temporalOperatorList. Default = "equals"</xs:documentation>
266                                </xs:annotation>
267                        </xs:element>
268                </xs:sequence>
269        </xs:complexType>
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        <xs:complexType name="SimpleDocument">
285                <xs:sequence>
286                        <xs:element name="DocumentId" type="xs:string"/>
287                </xs:sequence>
288        </xs:complexType>
289        <xs:complexType name="ReturnSimpleType">
290                <xs:complexContent>
291                        <xs:extension base="tns:SimpleDocument"/>
292                </xs:complexContent>
293        </xs:complexType>
294        <xs:complexType name="ReturnBriefType">
295                <xs:complexContent>
296                        <xs:extension base="tns:ReturnSimpleType">
297                                <xs:sequence>
298                                        <xs:element name="AdditionalInformation" type="tns:CustomInfo"/>                                       
299                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
300                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0"
301                                                maxOccurs="unbounded">
302                                                <xs:annotation>
303                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request. </xs:documentation>
304                                                </xs:annotation>
305                                        </xs:element>
306                                </xs:sequence>
307                        </xs:extension>
308                </xs:complexContent>
309        </xs:complexType>
310        <xs:complexType name="ReturnSummaryType">
311                <xs:complexContent>
312                        <xs:extension base="tns:ReturnSimpleType">
313                                <xs:sequence>
314                                        <xs:element name="AdditionalInformation" type="tns:CustomInfo"/>                                       
315                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
316                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0"
317                                                maxOccurs="unbounded">
318                                                <xs:annotation>
319                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request. </xs:documentation>
320                                                </xs:annotation>
321                                        </xs:element>
322                                        <xs:element name="Abstract" type="xs:string" minOccurs="0"/>
323                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0"
324                                                maxOccurs="unbounded"/>
325                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0"
326                                                maxOccurs="unbounded"/>
327                                </xs:sequence>
328                        </xs:extension>
329                </xs:complexContent>
330        </xs:complexType>
331        <xs:complexType name="ReturnFullType">
332                <xs:complexContent>
333                        <xs:extension base="tns:ReturnSimpleType">
334                                <xs:sequence>
335                                        <xs:element name="AdditionalInformation" type="tns:CustomInfo"/>
336                                        <xs:element name="Title" type="xs:string" minOccurs="0"/>
337                                        <xs:element name="OrderedField" type="tns:OrderingMetricType" minOccurs="0"
338                                                maxOccurs="unbounded">
339                                                <xs:annotation>
340                                                        <xs:documentation>Name value pair(s) representing field(s) corresoponding to orderBy fields in search request. </xs:documentation>
341                                                </xs:annotation>
342                                        </xs:element>
343                                        <xs:element name="Abstract" type="xs:string" minOccurs="0"/>
344                                        <xs:element name="Temporal" type="tns:TemporalType" minOccurs="0"
345                                                maxOccurs="unbounded"/>
346                                        <xs:element name="Spatial" type="tns:SpatialType" minOccurs="0"
347                                                maxOccurs="unbounded"/>
348                                        <xs:element name="Document" type="xs:string">
349                                                <xs:annotation>
350                                                        <xs:documentation>CDATA content of returned XML document. </xs:documentation>
351                                                </xs:annotation>
352                                        </xs:element>
353                                </xs:sequence>
354                        </xs:extension>
355                </xs:complexContent>
356        </xs:complexType>
357        <xs:complexType name="GetVersionReturnType">
358                <xs:sequence>
359                        <xs:element name="Version" type="xs:string"/>
360                        <xs:element name="Comment" type="xs:string"/>
361                </xs:sequence>
362        </xs:complexType>
363        <xs:complexType name="Documents">
364                <xs:complexContent>
365                        <xs:extension base="tns:DocumentsType">
366                                <xs:choice>
367                                        <xs:sequence>
368                                                <xs:element name="DocumentSimple" type="tns:ReturnSimpleType"
369                                                        maxOccurs="unbounded"/>
370                                        </xs:sequence>
371                                        <xs:sequence>
372                                                <xs:element name="DocumentFull" type="tns:ReturnFullType"
373                                                        maxOccurs="unbounded"/>
374                                        </xs:sequence>
375                                        <xs:sequence>
376                                                <xs:element name="DocumentBrief" type="tns:ReturnBriefType"
377                                                        maxOccurs="unbounded"/>
378                                        </xs:sequence>
379                                        <xs:sequence>
380                                                <xs:element name="DocumentSummary" type="tns:ReturnSummaryType"
381                                                        maxOccurs="unbounded"/>
382                                        </xs:sequence>
383                                </xs:choice>
384                        </xs:extension>
385                </xs:complexContent>
386        </xs:complexType>
387        <xs:complexType name="CustomInfo">
388                <xs:annotation>
389                        <xs:documentation>Customizable part of the document</xs:documentation>
390                </xs:annotation>
391                <xs:sequence>
392                        <xs:element name="Authors" type="xs:string"/>
393                        <xs:element name="Parameters" type="xs:string"/>
394                        <xs:element name="ResourceType" type="xs:string"/>
395                        <xs:element name="TopicCategory" type="xs:string"/>
396                        <xs:element name="Lineage" type="xs:string"/>
397                        <xs:element name="LimitationsPublicAccess" type="xs:string"/>
398                        <xs:element name="DataOriginator" type="xs:string"/>
399                        <xs:element name="OriginalFormatName" type="xs:string"/>
400                        <xs:element name="DatasetUpdateDate" type="xs:string"/>                 
401                </xs:sequence>
402        </xs:complexType>
403</xs:schema>
Note: See TracBrowser for help on using the repository browser.