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

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

Modified the doHarvest request splitting the providerID and the operationType

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