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

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

• Created the ContactType? to descrive a single user contact. This type contains one element (email – string - mandatory) and one attribute (id – string - mandatory)
• Updated the ProviderContactsTypes?
• Updated the DoHarvestRequest?
• Created a ProcessIDType with one attribute ID, to describe the harvest processID
• Added the ProcessIDType to the DoHarvestResponse? element.

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