source: RevitalizationWS/schemas/dataProvider/trunk/src/main/resources/DPWS.xsd @ 7237

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/RevitalizationWS/schemas/dataProvider/trunk/src/main/resources/DPWS.xsd@7237
Revision 7237, 17.9 KB checked in by mnagni, 10 years ago (diff)

Refactored the ProviderID definition

  • Property svn:executable set to *
  • 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<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
4        xmlns:xs="http://www.w3.org/2001/XMLSchema">
5        <xs:annotation>
6                <xs:documentation>Basic service operation requests</xs:documentation>
7        </xs:annotation>
8        <xs:element name="DoHarvestRequest">
9                <xs:annotation>
10                        <xs:documentation>Initiate an OAI or CSW metadata harvest from the specified provider</xs:documentation>
11                </xs:annotation>
12                <xs:complexType>
13                        <xs:sequence>
14                                <xs:choice>
15                                        <xs:element name="All" type="xs:string">
16                                                <xs:annotation>
17                                                        <xs:documentation>Harvest All Records</xs:documentation>
18                                                </xs:annotation>
19                                        </xs:element>
20                                        <xs:element name="New" type="xs:string">
21                                                <xs:annotation>
22                                                        <xs:documentation>Harvest only new records</xs:documentation>
23                                                </xs:annotation>
24                                        </xs:element>
25                                </xs:choice>
26                                <xs:element minOccurs="0" name="Contacts">
27                                        <xs:complexType>
28                                                <xs:sequence maxOccurs="unbounded" minOccurs="0">
29                                                        <xs:element name="ContactID" type="xs:string"/>
30                                                </xs:sequence>
31                                        </xs:complexType>
32                                </xs:element>
33                                <xs:element ref="ProviderID"/>
34                        </xs:sequence>
35                </xs:complexType>
36        </xs:element>
37        <xs:element name="DoIngestRequest">
38                <xs:annotation>
39                        <xs:documentation>Activate an ingest of all available metadata files for the specified provider</xs:documentation>
40                </xs:annotation>
41                <xs:complexType>
42                        <xs:sequence>
43                                <xs:element name="Provider" type="ProviderContactType">
44                                        <xs:annotation>
45                                                <xs:documentation>Value for Provider ID should be available in a list from the getLists operation.  When process completed notification will be sent to selected email address if provided</xs:documentation>
46                                        </xs:annotation>
47                                </xs:element>
48                        </xs:sequence>
49                </xs:complexType>
50        </xs:element>
51        <xs:element name="GetHarvestHistoryRequest">
52                <xs:annotation>
53                        <xs:documentation>Get information on OAI or CSW metadata harvesting histories for a date range</xs:documentation>
54                </xs:annotation>
55                <xs:complexType>
56                        <xs:sequence>
57                                <xs:element name="DateRange" type="DataRangeType" minOccurs="0">
58                                        <xs:annotation>
59                                                <xs:documentation>If DateRange not present will default to the last 10 days</xs:documentation>
60                                        </xs:annotation>
61                                </xs:element>
62                                <xs:element ref="ProviderID"/>
63                        </xs:sequence>
64                </xs:complexType>
65        </xs:element>
66        <xs:complexType name="GetIngestHistoryRequest">
67                <xs:annotation>
68                        <xs:documentation>Get information on metadata ingest into the discovery database history for a date range</xs:documentation>
69                </xs:annotation>
70                <xs:sequence>
71                        <xs:element name="DateRange" type="DataRangeType" minOccurs="0">
72                                <xs:annotation>
73                                        <xs:documentation>If DateRange not present will default to the last 10 days</xs:documentation>
74                                </xs:annotation>
75                        </xs:element>
76                        <xs:element ref="ProviderID"/>
77                </xs:sequence>
78        </xs:complexType>
79        <xs:element name="GetProviderStatsRequest">
80                <xs:annotation>
81                        <xs:documentation>Get basic statistics on records in the discovery database for provider N</xs:documentation>
82                </xs:annotation>
83                <xs:complexType>
84                        <xs:sequence>
85                                <xs:element name="DateRange" type="DataRangeType" minOccurs="0"/>
86                                <xs:element ref="ProviderID"/>
87                        </xs:sequence>
88                </xs:complexType>
89        </xs:element>
90        <xs:element name="GetUsageStatsRequest">
91                <xs:annotation>
92                        <xs:documentation>Get basic statistic on usage of the Data Web Service (DWS)</xs:documentation>
93                </xs:annotation>
94                <xs:complexType>
95                        <xs:sequence>
96                                <xs:element name="DataRange" type="DataRangeType"/>
97                        </xs:sequence>
98                </xs:complexType>
99        </xs:element>
100        <xs:complexType name="GetProviderDetailsRequest">
101                <xs:annotation>
102                        <xs:documentation>Request details for provider N</xs:documentation>
103                </xs:annotation>
104                <xs:sequence>
105                        <xs:element ref="ProviderID"/>
106                </xs:sequence>
107        </xs:complexType>
108        <xs:element name="DoConfigureProviderDetails">
109                <xs:annotation>
110                        <xs:documentation>Change details for metadata provider N - includes OAI/CSW harvesting endpoints as well as provider N details</xs:documentation>
111                </xs:annotation>
112                <xs:complexType>
113                        <xs:sequence>
114                                <xs:element name="ProviderDetails" type="ProviderDetailsType"/>
115                                <xs:element name="ContactDetails" type="ProviderContactType" minOccurs="0"/>
116                                <xs:element ref="ProviderID"/>
117                        </xs:sequence>
118                </xs:complexType>
119        </xs:element>
120        <xs:element name="GetList" type="GetListType">
121                <xs:annotation>
122                        <xs:documentation>Get a list of values for list specified in GetListNames operation</xs:documentation>
123                </xs:annotation>
124        </xs:element>
125        <xs:element name="GetListNames" nillable="true">
126                <xs:annotation>
127                        <xs:documentation>Get names of lists used to define controlled values in this web service i.e. HarvestType</xs:documentation>
128                </xs:annotation>
129        </xs:element>
130        <xs:annotation>
131                <xs:documentation>Basic service operation returns</xs:documentation>
132        </xs:annotation>
133        <xs:element name="DoHarvestReturn">
134                <xs:annotation>
135                        <xs:documentation>Return confirmation on status of metadata harvest and relevant report</xs:documentation>
136                </xs:annotation>
137                <xs:complexType>
138                        <xs:sequence>
139                                <xs:element name="Confirmation" type="ConfirmationType"/>
140                                <xs:element name="processID" type="ProcessIDType"/>
141                        </xs:sequence>
142                </xs:complexType>
143        </xs:element>
144        <xs:element name="DoIngestReturn">
145                <xs:annotation>
146                        <xs:documentation>Return confirmation on status of metadata ingest and relevant report</xs:documentation>
147                </xs:annotation>
148                <xs:complexType>
149                        <xs:sequence>
150                                <xs:element name="Confirmation" type="ConfirmationType">
151                                        <xs:annotation>
152                                                <xs:documentation>Confirm that ingestion has been initiated.  Ingestion may take many tens of minutes so confirmation message will inform that selected email address in request will be emailed when ingest complete</xs:documentation>
153                                        </xs:annotation>
154                                </xs:element>
155                        </xs:sequence>
156                </xs:complexType>
157        </xs:element>
158        <xs:element name="GetHarvestHistoryReturn">
159                <xs:annotation>
160                        <xs:documentation>Return information on previous metadata harvesting</xs:documentation>
161                </xs:annotation>
162                <xs:complexType>
163                        <xs:sequence>
164                                <xs:element name="Confirmation" type="ConfirmationType"/>
165                                <xs:element name="HarvestingEvent" type="HarvestInformationType" minOccurs="0"
166                                        maxOccurs="unbounded">
167                                        <xs:annotation>
168                                                <xs:documentation>One per event in log within the date range in the request (default is last 10 days)</xs:documentation>
169                                        </xs:annotation>
170                                </xs:element>
171                        </xs:sequence>
172                </xs:complexType>
173        </xs:element>
174        <xs:complexType name="GetIngestHistoryReturn">
175                <xs:annotation>
176                        <xs:documentation>Return information on previous metadata ingestion</xs:documentation>
177                </xs:annotation>
178                <xs:sequence>
179                        <xs:element name="Confirmation" type="ConfirmationType"/>
180                        <xs:element name="IngestEvent" type="IngestInformationType" minOccurs="0"
181                                maxOccurs="unbounded">
182                                <xs:annotation>
183                                        <xs:documentation>One per event in log within the date range in the request (default is last 10 days)</xs:documentation>
184                                </xs:annotation>
185                        </xs:element>
186                </xs:sequence>
187        </xs:complexType>
188        <xs:element name="GetProviderStatsReturn">
189                <xs:annotation>
190                        <xs:documentation>Return statistics on data provider assets in the discovery database</xs:documentation>
191                </xs:annotation>
192                <xs:complexType>
193                        <xs:sequence>
194                                <xs:element name="Confirmation" type="ConfirmationType"/>
195                                <xs:element name="Statistics" type="StatisticsType"/>
196                        </xs:sequence>
197                </xs:complexType>
198        </xs:element>
199        <xs:element name="GetUsageStatsReturn">
200                <xs:annotation>
201                        <xs:documentation>Return statistics on client access to the Discovery Web Service (DWS)</xs:documentation>
202                </xs:annotation>
203                <xs:complexType>
204                        <xs:sequence>
205                                <xs:element name="Confirmation" type="ConfirmationType"/>
206                                <xs:element name="Statistics" type="StatisticsType"/>
207                        </xs:sequence>
208                </xs:complexType>
209        </xs:element>
210        <xs:complexType name="GetProviderDetailsReturn">
211                <xs:annotation>
212                        <xs:documentation>Return information on Provider N's details</xs:documentation>
213                </xs:annotation>
214                <xs:sequence>
215                        <xs:element name="Confirmation" type="ConfirmationType"/>
216                        <xs:element name="ContactDetails" type="ProviderContactType"/>
217                </xs:sequence>
218        </xs:complexType>
219        <xs:element name="DoConfigureProviderDetailsReturn">
220                <xs:annotation>
221                        <xs:documentation>Confirmation of update to Provider N's details</xs:documentation>
222                </xs:annotation>
223                <xs:complexType>
224                        <xs:sequence>
225                                <xs:element name="Confirmation" type="ConfirmationType"/>
226                        </xs:sequence>
227                </xs:complexType>
228        </xs:element>
229        <xs:element name="GetListReturn" type="GetListReturnType">
230                <xs:annotation>
231                        <xs:documentation>Return values in chosen List N</xs:documentation>
232                </xs:annotation>
233        </xs:element>
234        <xs:element name="GetListNamesReturn" type="GetListNamesReturnType">
235                <xs:annotation>
236                        <xs:documentation>Return names of lists used for controlled values</xs:documentation>
237                </xs:annotation>
238        </xs:element>
239        <xs:annotation>
240                <xs:documentation>Types</xs:documentation>
241        </xs:annotation>
242        <xs:complexType name="ProviderDetailsType">
243                <xs:sequence>
244                        <xs:element name="ProviderURL" type="xs:string">
245                                <xs:annotation>
246                                        <xs:documentation>URL of the Providers Metadata publisher i.e. OAI or CSW</xs:documentation>
247                                </xs:annotation>
248                        </xs:element>
249                        <xs:element name="Format" type="xs:string">
250                                <xs:annotation>
251                                        <xs:documentation>Format name (getList)</xs:documentation>
252                                </xs:annotation>
253                        </xs:element>
254                        <xs:element name="SetSpec" type="xs:string" minOccurs="0"/>
255                        <xs:element name="splitBySet" type="xs:boolean"/>
256                </xs:sequence>
257        </xs:complexType>
258        <xs:complexType name="GetListNamesReturnType">
259                <xs:sequence maxOccurs="unbounded">
260                        <xs:element name="listNames">
261                                <xs:complexType>
262                                        <xs:sequence>
263                                                <xs:element name="listName" type="xs:string" maxOccurs="unbounded"/>
264                                        </xs:sequence>
265                                </xs:complexType>
266                        </xs:element>
267                </xs:sequence>
268        </xs:complexType>
269        <xs:complexType name="GetListReturnType">
270                <xs:sequence>
271                        <xs:element name="list" minOccurs="0">
272                                <xs:complexType>
273                                        <xs:sequence>
274                                                <xs:element name="listMember" type="xs:string" maxOccurs="unbounded"/>
275                                        </xs:sequence>
276                                        <xs:attribute name="name" type="xs:string" use="required"/>
277                                </xs:complexType>
278                        </xs:element>
279                </xs:sequence>
280        </xs:complexType>
281        <xs:complexType name="ConfirmationType">
282                <xs:sequence>
283                        <xs:element name="Status" type="xs:string"/>
284                        <xs:element name="Message" type="xs:string"/>
285                </xs:sequence>
286        </xs:complexType>
287        <xs:complexType name="HarvestInformationType">
288                <xs:sequence>
289                        <xs:element name="RecordsHarvested" type="xs:string">
290                                <xs:annotation>
291                                        <xs:documentation>Number of records processed</xs:documentation>
292                                </xs:annotation>
293                        </xs:element>
294                        <xs:element name="RecordsUpdated" type="xs:string">
295                                <xs:annotation>
296                                        <xs:documentation>Number of records detected as new</xs:documentation>
297                                </xs:annotation>
298                        </xs:element>
299                        <xs:element name="ResumptionTokens" type="xs:string" minOccurs="0"/>
300                        <xs:element name="Message" minOccurs="0">
301                                <xs:annotation>
302                                        <xs:documentation>OAI harvesting message - can contain error string</xs:documentation>
303                                </xs:annotation>
304                        </xs:element>
305                        <xs:element name="HarvestStartTime" type="xs:string" minOccurs="0"/>
306                        <xs:element name="HarvestDuration" type="xs:string" minOccurs="0"/>
307                </xs:sequence>
308        </xs:complexType>
309        <xs:complexType name="IngestInformationType">
310                <xs:sequence>
311                        <xs:sequence>
312                                <xs:element name="IngestDate" type="xs:string">
313                                        <xs:annotation>
314                                                <xs:documentation>Date/time of metadata ingest</xs:documentation>
315                                        </xs:annotation>
316                                </xs:element>
317                                <xs:element name="TotalNumberFilesProcessed" type="xs:string">
318                                        <xs:annotation>
319                                                <xs:documentation>Number of files processed - i.e. the number of files in the harvested XML director</xs:documentation>
320                                        </xs:annotation>
321                                </xs:element>
322                                <xs:element name="RecordsProcessedSuccessfully" type="xs:string">
323                                        <xs:annotation>
324                                                <xs:documentation>Number of files in the harvest directory successfully processed - NOTE this includes files that may have ingest errors</xs:documentation>
325                                        </xs:annotation>
326                                </xs:element>
327                                <xs:element name="RecordsProcessedUnsuccessfully" type="xs:string">
328                                        <xs:annotation>
329                                                <xs:documentation>Number of files that failed - mainly due to XML parsing errors during ingest</xs:documentation>
330                                        </xs:annotation>
331                                </xs:element>
332                                <xs:element name="RecordsCreated" type="xs:string">
333                                        <xs:annotation>
334                                                <xs:documentation>Number of records inserted into the discovery database for the first time</xs:documentation>
335                                        </xs:annotation>
336                                </xs:element>
337                                <xs:element name="RecordsUpdated" type="xs:string">
338                                        <xs:annotation>
339                                                <xs:documentation>Number of existing records in the discovery database that have been updated due to new content after harvesting</xs:documentation>
340                                        </xs:annotation>
341                                </xs:element>
342                                <xs:element name="RecordsDeleted" type="xs:string">
343                                        <xs:annotation>
344                                                <xs:documentation>Number of files deleted from the discovery database - will equate to files that were previously in the database but equivalent record on the providers CSW/OAI has been withdrawn so must be deleted from the database</xs:documentation>
345                                        </xs:annotation>
346                                </xs:element>
347                                <xs:element name="NumberOfProblemFiles" type="xs:string">
348                                        <xs:annotation>
349                                                <xs:documentation>Number of files that had a problem reported during ingest and not updated to the database - usually content type problems</xs:documentation>
350                                        </xs:annotation>
351                                </xs:element>
352                                <xs:element name="ProblemFileReport" minOccurs="0" maxOccurs="unbounded">
353                                        <xs:annotation>
354                                                <xs:documentation>Report for each file summarised in NumberOfProblemFiles</xs:documentation>
355                                        </xs:annotation>
356                                        <xs:complexType>
357                                                <xs:sequence>
358                                                        <xs:element name="ProblemFileName" type="xs:string">
359                                                                <xs:annotation>
360                                                                        <xs:documentation>xml filename</xs:documentation>
361                                                                </xs:annotation>
362                                                        </xs:element>
363                                                        <xs:element name="Message" type="xs:string">
364                                                                <xs:annotation>
365                                                                        <xs:documentation>error message thrown by the ingester</xs:documentation>
366                                                                </xs:annotation>
367                                                        </xs:element>
368                                                </xs:sequence>
369                                        </xs:complexType>
370                                </xs:element>
371                                <xs:element ref="ProviderID"/>
372                        </xs:sequence>
373                </xs:sequence>
374        </xs:complexType>
375        <xs:complexType name="ProviderContactType">
376                <xs:sequence>
377                        <xs:element name="HarvestDetails" type="ProviderDetailsType"/>
378                        <xs:element name="ProviderName" type="xs:string" minOccurs="0">
379                                <xs:annotation>
380                                        <xs:documentation>Full provider name i.e. British Atmospheric Data Centre</xs:documentation>
381                                </xs:annotation>
382                        </xs:element>
383                        <xs:element name="ProviderContacts" type="ContactType" minOccurs="0"
384                                maxOccurs="unbounded">
385                                <xs:annotation>
386                                        <xs:documentation>Email addresses of contacts at Data Provider</xs:documentation>
387                                </xs:annotation>
388                        </xs:element>
389                        <xs:element name="ProviderAdminEmail" type="ContactType">
390                                <xs:annotation>
391                                        <xs:documentation>Mandatory provider admin email</xs:documentation>
392                                </xs:annotation>
393                        </xs:element>
394                        <xs:element ref="ProviderID"/>
395                </xs:sequence>
396        </xs:complexType>
397
398        <xs:element name="ProviderID" type="xs:string">
399                <xs:annotation>
400                        <xs:documentation>Represents the UniqueID assigned to a Provider element</xs:documentation>
401                </xs:annotation>
402        </xs:element>
403        <xs:complexType name="DataRangeType">
404                <xs:sequence>
405                        <xs:element name="Start">
406                                <xs:annotation>
407                                        <xs:documentation>start period for calculating statistics</xs:documentation>
408                                </xs:annotation>
409                        </xs:element>
410                        <xs:element name="End">
411                                <xs:annotation>
412                                        <xs:documentation>end period for calculating statistics</xs:documentation>
413                                </xs:annotation>
414                        </xs:element>
415                </xs:sequence>
416        </xs:complexType>
417        <xs:complexType name="GetListType">
418                <xs:sequence>
419                        <xs:element name="listName" type="xs:string"/>
420                </xs:sequence>
421        </xs:complexType>
422        <xs:complexType name="HarvestType">
423                <xs:sequence>
424                        <xs:element name="Type" type="xs:string">
425                                <xs:annotation>
426                                        <xs:documentation>OAI, CSW etc - should be name delimited list</xs:documentation>
427                                </xs:annotation>
428                        </xs:element>
429                </xs:sequence>
430        </xs:complexType>
431        <xs:complexType name="StatisticsType">
432                <xs:sequence>
433                        <xs:element name="Data" type="xs:string">
434                                <xs:annotation>
435                                        <xs:documentation>CDATA element containing information on statistics.  Information and structure may change.</xs:documentation>
436                                </xs:annotation>
437                        </xs:element>
438                        <xs:element ref="ProviderID"/>
439                </xs:sequence>
440        </xs:complexType>
441        <xs:complexType name="ContactType">
442                <xs:sequence>
443                        <xs:element name="email" type="xs:string"/>
444                </xs:sequence>
445                <xs:attribute name="id" type="xs:string" use="required"/>
446        </xs:complexType>
447        <xs:complexType name="ProcessIDType">
448                <xs:attribute name="id" type="xs:string" use="required"/>
449        </xs:complexType>
450        <xs:element name="GetStatusProcessesRequest">
451                <xs:complexType>
452                        <xs:sequence maxOccurs="unbounded">
453                                <xs:element name="ProcessID" type="ProcessIDType"/>
454                        </xs:sequence>
455                </xs:complexType>
456        </xs:element>
457        <xs:element name="GetStatusProcessesReturn">
458                <xs:complexType>
459                        <xs:sequence maxOccurs="unbounded">
460                                <xs:element name="ProcessID" type="ProcessIDType"/>
461                                <xs:element name="processStatus" type="ProcessStatusIDType"/>
462                        </xs:sequence>
463                </xs:complexType>
464        </xs:element>
465        <xs:complexType name="ProcessStatusIDType">
466                <xs:attribute name="id" type="xs:string" use="required"/>
467        </xs:complexType>
468</xs:schema>
Note: See TracBrowser for help on using the repository browser.