1 |
<?xml version="1.0" encoding="UTF-8"?> |
2 |
<!-- $Revision$ $Date$ $HeadURL$ --> |
3 |
<!-- UWS schema - Paul Harrison May 2008 --> |
4 |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" |
5 |
targetNamespace="http://www.ivoa.net/xml/UWS/v1.0" xmlns:uws="http://www.ivoa.net/xml/UWS/v1.0" |
6 |
xmlns:xlink="http://www.w3.org/1999/xlink" elementFormDefault="qualified" |
7 |
attributeFormDefault="unqualified" |
8 |
version="1.1-PR-20150626" |
9 |
> |
10 |
<xs:import namespace="http://www.w3.org/1999/xlink" |
11 |
schemaLocation="http://www.ivoa.net/xml/Xlink/xlink.xsd"/> |
12 |
|
13 |
<xs:complexType name="ShortJobDescription"> |
14 |
<xs:sequence> |
15 |
<xs:element name="phase" type="uws:ExecutionPhase"> |
16 |
<xs:annotation> |
17 |
<xs:documentation> the execution phase - returned at |
18 |
/(jobs)/(jobid)/phase</xs:documentation> |
19 |
</xs:annotation> |
20 |
</xs:element> |
21 |
</xs:sequence> |
22 |
<xs:attribute name="id" type="uws:JobIdentifier" use="required"></xs:attribute> |
23 |
<xs:attributeGroup ref="uws:reference"></xs:attributeGroup> |
24 |
</xs:complexType> |
25 |
<xs:attributeGroup name="reference"> |
26 |
<xs:annotation> |
27 |
<xs:documentation>standard xlink references |
28 |
</xs:documentation> |
29 |
</xs:annotation> |
30 |
<xs:attribute ref="xlink:type" use="optional" |
31 |
default="simple" /> |
32 |
<xs:attribute ref="xlink:href" use="optional" /> |
33 |
</xs:attributeGroup> |
34 |
<xs:simpleType name="ExecutionPhase"> |
35 |
<xs:annotation> |
36 |
<xs:documentation> |
37 |
Enumeration of possible phases of job execution |
38 |
</xs:documentation> |
39 |
</xs:annotation> |
40 |
<xs:restriction base="xs:string"> |
41 |
<xs:enumeration value="PENDING"> |
42 |
<xs:annotation> |
43 |
<xs:documentation> |
44 |
The first phase a job is entered into - this is where |
45 |
a job is being set up but no request to run has |
46 |
occurred. |
47 |
</xs:documentation> |
48 |
</xs:annotation> |
49 |
</xs:enumeration> |
50 |
<xs:enumeration value="QUEUED"> |
51 |
<xs:annotation> |
52 |
<xs:documentation> |
53 |
A job has been accepted for execution but is waiting |
54 |
in a queue |
55 |
</xs:documentation> |
56 |
</xs:annotation> |
57 |
</xs:enumeration> |
58 |
<xs:enumeration value="EXECUTING"> |
59 |
<xs:annotation> |
60 |
<xs:documentation>A job is running</xs:documentation> |
61 |
</xs:annotation> |
62 |
</xs:enumeration> |
63 |
<xs:enumeration value="COMPLETED"> |
64 |
<xs:annotation> |
65 |
<xs:documentation> |
66 |
A job has completed successfully |
67 |
</xs:documentation> |
68 |
</xs:annotation> |
69 |
</xs:enumeration> |
70 |
<xs:enumeration value="ERROR"> |
71 |
<xs:annotation> |
72 |
<xs:documentation> |
73 |
Some form of error has occurred |
74 |
</xs:documentation> |
75 |
</xs:annotation> |
76 |
</xs:enumeration> |
77 |
<xs:enumeration value="UNKNOWN"> |
78 |
<xs:annotation> |
79 |
<xs:documentation> |
80 |
The job is in an unknown state. |
81 |
</xs:documentation> |
82 |
</xs:annotation> |
83 |
</xs:enumeration> |
84 |
<xs:enumeration value="HELD"> |
85 |
<xs:annotation> |
86 |
<xs:documentation> |
87 |
The job is HELD pending execution and will not |
88 |
automatically be executed - can occur after a |
89 |
PHASE=RUN request has been made (cf PENDING). |
90 |
</xs:documentation> |
91 |
</xs:annotation> |
92 |
</xs:enumeration> |
93 |
<xs:enumeration value="SUSPENDED"> |
94 |
<xs:annotation> |
95 |
<xs:documentation> |
96 |
The job has been suspended by the system during |
97 |
execution |
98 |
</xs:documentation> |
99 |
</xs:annotation> |
100 |
</xs:enumeration> |
101 |
<xs:enumeration value="ABORTED"> |
102 |
<xs:annotation> |
103 |
<xs:documentation> |
104 |
The job has been aborted, either by user request or by |
105 |
the server because of lack or overuse of resources. |
106 |
</xs:documentation> |
107 |
</xs:annotation> |
108 |
</xs:enumeration> |
109 |
<xs:enumeration value="ARCHIVED"> |
110 |
<xs:annotation> |
111 |
<xs:documentation> |
112 |
The job has been archived by the server at destruction time. An archived job |
113 |
may have deleted the results to reclaim resources, but must have job metadata preserved. |
114 |
This is an alternative that the server may choose in contrast to completely destroying all record of the job. |
115 |
</xs:documentation> |
116 |
</xs:annotation> |
117 |
</xs:enumeration> |
118 |
</xs:restriction> |
119 |
</xs:simpleType> |
120 |
<xs:complexType name="JobSummary"> |
121 |
<xs:annotation> |
122 |
<xs:documentation> |
123 |
The complete representation of the state of a job |
124 |
</xs:documentation> |
125 |
</xs:annotation> |
126 |
<xs:sequence> |
127 |
<xs:element name="jobId" type="uws:JobIdentifier" /> |
128 |
<xs:element name="runId" type="xs:string" maxOccurs="1" |
129 |
minOccurs="0" |
130 |
> |
131 |
<xs:annotation> |
132 |
<xs:documentation> |
133 |
this is a client supplied identifier - the UWS system |
134 |
does nothing other than to return it as part of the |
135 |
description of the job |
136 |
</xs:documentation> |
137 |
</xs:annotation> |
138 |
</xs:element> |
139 |
<xs:element name="ownerId" type="xs:string" nillable="true"> |
140 |
<xs:annotation> |
141 |
<xs:documentation> |
142 |
the owner (creator) of the job - this should be |
143 |
expressed as a string that can be parsed in accordance |
144 |
with IVOA security standards. If there was no |
145 |
authenticated job creator then this should be set to |
146 |
NULL. |
147 |
</xs:documentation> |
148 |
</xs:annotation> |
149 |
</xs:element> |
150 |
<xs:element name="phase" type="uws:ExecutionPhase"> |
151 |
<xs:annotation> |
152 |
<xs:documentation> |
153 |
the execution phase - returned at |
154 |
/(jobs)/(jobid)/phase |
155 |
</xs:documentation> |
156 |
</xs:annotation> |
157 |
</xs:element> |
158 |
<xs:element name="quote" type="xs:dateTime" nillable="true" |
159 |
maxOccurs="1" minOccurs="0" |
160 |
> |
161 |
<xs:annotation> |
162 |
<xs:documentation> |
163 |
A Quote predicts when the job is likely to complete - |
164 |
returned at /(jobs)/(jobid)/quote "don't know" is |
165 |
encoded by setting to the XML null value |
166 |
xsi:nil="true" |
167 |
</xs:documentation> |
168 |
</xs:annotation> |
169 |
</xs:element> |
170 |
<xs:element name="startTime" type="xs:dateTime" |
171 |
nillable="true" |
172 |
> |
173 |
<xs:annotation> |
174 |
<xs:documentation> |
175 |
The instant at which the job started execution. |
176 |
</xs:documentation> |
177 |
</xs:annotation> |
178 |
</xs:element> |
179 |
<xs:element name="endTime" type="xs:dateTime" |
180 |
nillable="true" |
181 |
> |
182 |
<xs:annotation> |
183 |
<xs:documentation> |
184 |
The instant at which the job finished execution |
185 |
</xs:documentation> |
186 |
</xs:annotation> |
187 |
</xs:element> |
188 |
<xs:element name="executionDuration" type="xs:int" |
189 |
nillable="false" |
190 |
> |
191 |
<xs:annotation> |
192 |
<xs:documentation> |
193 |
The duration (in seconds) for which the job should be |
194 |
allowed to run - a value of 0 is intended to mean |
195 |
unlimited - returned at |
196 |
/(jobs)/(jobid)/executionduration |
197 |
</xs:documentation> |
198 |
</xs:annotation> |
199 |
</xs:element> |
200 |
<xs:element name="destruction" type="xs:dateTime" |
201 |
nillable="true" |
202 |
> |
203 |
<xs:annotation> |
204 |
<xs:documentation> |
205 |
The time at which the whole job + records + results |
206 |
will be destroyed. returned at |
207 |
/(jobs)/(jobid)/destruction |
208 |
</xs:documentation> |
209 |
</xs:annotation> |
210 |
</xs:element> |
211 |
<xs:element ref="uws:parameters" maxOccurs="1" minOccurs="0"> |
212 |
<xs:annotation> |
213 |
<xs:documentation> |
214 |
The parameters to the job (where appropriate) can also |
215 |
be retrieved at /(jobs)/(jobid)/parameters |
216 |
</xs:documentation> |
217 |
</xs:annotation> |
218 |
</xs:element> |
219 |
<xs:element ref="uws:results"> |
220 |
<xs:annotation> |
221 |
<xs:documentation> |
222 |
The results for the job - can also be retrieved at |
223 |
/(jobs)/(jobid)/results |
224 |
</xs:documentation> |
225 |
</xs:annotation> |
226 |
</xs:element> |
227 |
<xs:element name="errorSummary" type="uws:ErrorSummary" |
228 |
maxOccurs="1" minOccurs="0" |
229 |
> |
230 |
</xs:element> |
231 |
<xs:element name="jobInfo" maxOccurs="1" minOccurs="0"> |
232 |
<xs:annotation> |
233 |
<xs:documentation> |
234 |
This is arbitrary information that can be added to the |
235 |
job description by the UWS implementation. |
236 |
</xs:documentation> |
237 |
</xs:annotation> |
238 |
<xs:complexType> |
239 |
<xs:sequence> |
240 |
<xs:any namespace="##any" processContents="lax" |
241 |
minOccurs="0" maxOccurs="unbounded" |
242 |
/> |
243 |
</xs:sequence> |
244 |
</xs:complexType> |
245 |
</xs:element> |
246 |
</xs:sequence> |
247 |
<xs:attribute name="version" type="uws:UWSVersion" use="required"/> |
248 |
</xs:complexType> |
249 |
<xs:simpleType name="JobIdentifier"> |
250 |
<xs:annotation> |
251 |
<xs:documentation> The identifier for the job |
252 |
</xs:documentation> |
253 |
</xs:annotation> |
254 |
<xs:restriction base="xs:string" /> |
255 |
</xs:simpleType> |
256 |
<xs:simpleType name="UWSVersion"> |
257 |
<xs:annotation> |
258 |
<xs:documentation>The version of the UWS standard that the server complies with. |
259 |
</xs:documentation> |
260 |
</xs:annotation> |
261 |
<xs:restriction base="xs:string" /> |
262 |
</xs:simpleType> |
263 |
<xs:element name="job" type="uws:JobSummary"> |
264 |
<xs:annotation> |
265 |
<xs:documentation> This is the information that is returned |
266 |
when a GET is made for a single job resource - i.e. |
267 |
/(jobs)/(jobid)</xs:documentation> |
268 |
</xs:annotation> |
269 |
</xs:element> |
270 |
<xs:element name="jobs"> |
271 |
<xs:annotation> |
272 |
<xs:documentation> The list of job references returned at |
273 |
/(jobs)</xs:documentation> |
274 |
<xs:documentation>The list presented may be affected by the current securiity context and may be filtered</xs:documentation> |
275 |
</xs:annotation> |
276 |
<xs:complexType> |
277 |
<xs:sequence> |
278 |
<xs:element name="jobref" type="uws:ShortJobDescription" |
279 |
maxOccurs="unbounded" minOccurs="0" |
280 |
> |
281 |
</xs:element> |
282 |
</xs:sequence> |
283 |
<xs:attribute name="version" type="uws:UWSVersion" use="required"/> |
284 |
</xs:complexType> |
285 |
</xs:element> |
286 |
<xs:complexType name="ResultReference" mixed="false"> |
287 |
<xs:annotation> |
288 |
<xs:documentation> A reference to a UWS result. |
289 |
</xs:documentation> |
290 |
</xs:annotation> |
291 |
<xs:attribute name="id" type="xs:string" use="required"></xs:attribute> |
292 |
<xs:attributeGroup ref="uws:reference"></xs:attributeGroup> |
293 |
<xs:attribute name="size" type="xs:long" use="required" ></xs:attribute> |
294 |
<xs:attribute name="mime-type" type="xs:string" use="required"></xs:attribute> |
295 |
<xs:anyAttribute namespace="urn:uwscustom" processContents="lax" /> |
296 |
</xs:complexType> |
297 |
<xs:element name="results"> |
298 |
<xs:annotation> |
299 |
<xs:documentation> The element returned for |
300 |
/(jobs)/(jobid)/results</xs:documentation> |
301 |
</xs:annotation> |
302 |
<xs:complexType> |
303 |
<xs:sequence> |
304 |
<xs:element name="result" type="uws:ResultReference" |
305 |
maxOccurs="unbounded" minOccurs="0" |
306 |
></xs:element> |
307 |
</xs:sequence> |
308 |
</xs:complexType> |
309 |
</xs:element> |
310 |
<xs:complexType name="ErrorSummary"> |
311 |
<xs:annotation> |
312 |
<xs:documentation> |
313 |
A short summary of an error - a fuller representation of the |
314 |
error may be retrieved from /(jobs)/(jobid)/error |
315 |
</xs:documentation> |
316 |
</xs:annotation> |
317 |
<xs:sequence> |
318 |
<xs:element name="message" type="xs:string"></xs:element> |
319 |
</xs:sequence> |
320 |
<xs:attribute name="type" type="uws:ErrorType" use="required"> |
321 |
<xs:annotation> |
322 |
<xs:documentation> |
323 |
characterization of the type of the error |
324 |
</xs:documentation> |
325 |
</xs:annotation> |
326 |
</xs:attribute> |
327 |
<xs:attribute name="hasDetail" type="xs:boolean" use="required"> |
328 |
<xs:annotation> |
329 |
<xs:documentation>if true then there is a more detailed error message available at /(jobs)/(jobid)/error</xs:documentation> |
330 |
</xs:annotation></xs:attribute> |
331 |
</xs:complexType> |
332 |
<xs:simpleType name="ErrorType"> |
333 |
<xs:restriction base="xs:string"> |
334 |
<xs:enumeration value="transient"></xs:enumeration> |
335 |
<xs:enumeration value="fatal"></xs:enumeration> |
336 |
</xs:restriction> |
337 |
</xs:simpleType> |
338 |
<xs:complexType name="Parameter" mixed="true"> |
339 |
<xs:annotation> |
340 |
<xs:documentation> the list of input parameters to the job - if |
341 |
the job description language does not naturally have |
342 |
parameters, then this list should contain one element which |
343 |
is the content of the original POST that created the job. |
344 |
</xs:documentation> |
345 |
</xs:annotation> |
346 |
<xs:attribute name="byReference" type="xs:boolean" |
347 |
default="false" |
348 |
> |
349 |
<xs:annotation> |
350 |
<xs:documentation> if this attribute is true then the |
351 |
content of the parameter represents a URL to retrieve the |
352 |
actual parameter value.</xs:documentation> |
353 |
<xs:documentation> It is up to the implementation to decide |
354 |
if a parameter value cannot be returned directly as the |
355 |
content - the basic rule is that the representation of |
356 |
the parameter must allow the whole job element to be |
357 |
valid XML. If this cannot be achieved then the parameter |
358 |
value must be returned by reference.</xs:documentation> |
359 |
</xs:annotation> |
360 |
</xs:attribute> |
361 |
<xs:attribute name="id" type="xs:string" use="required"> |
362 |
<xs:annotation> |
363 |
<xs:documentation> the identifier for the parameter |
364 |
</xs:documentation> |
365 |
</xs:annotation> |
366 |
</xs:attribute> |
367 |
<xs:attribute name="isPost" type="xs:boolean"></xs:attribute> |
368 |
</xs:complexType> |
369 |
<xs:element name="parameters"> |
370 |
<xs:complexType> |
371 |
<xs:sequence> |
372 |
<xs:element name="parameter" type="uws:Parameter" |
373 |
maxOccurs="unbounded" minOccurs="0" |
374 |
></xs:element> |
375 |
</xs:sequence> |
376 |
</xs:complexType> |
377 |
</xs:element> |
378 |
</xs:schema> |
379 |
|
380 |
<!-- --> |