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

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

Minimal changes in the pom (added a deploy repository) and the Skeleton class (fixed one import)

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