/[volute]/trunk/projects/grid/uws/doc/UWS.xsd
ViewVC logotype

Contents of /trunk/projects/grid/uws/doc/UWS.xsd

Parent Directory Parent Directory | Revision Log Revision Log


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

Properties

Name Value
svn:mime-type text/plain

msdemlei@ari.uni-heidelberg.de
ViewVC Help
Powered by ViewVC 1.1.26