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

Diff of /trunk/projects/grid/uws/doc/UWS.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1681 by harripa, Mon Apr 9 23:50:51 2012 UTC revision 1682 by harripa, Tue Apr 10 21:54:34 2012 UTC
# Line 4  Line 4 
4  Paul Harrison -->  Paul Harrison -->
5  <!DOCTYPE html  <!DOCTYPE html
6    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
7  <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="en" lang="en" xsi:schemalocation="http://www.w3.org/1999/xhtml                           http://www.w3.org/2002/08/xhtml/xhtml1-transitional.xsd"><head    profile="http://www.w3.org/1999/xhtml/vocab"><title>Universal Worker Service Specification</title><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/><meta name="Title" content="IVOA WG Internal Draft"/><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/><meta name="author" content="Paul Harrison, paul.harrison@manchester.ac.uk"/><meta name="maintainedBy" content="Paul Harrison, paul.harrison@manchester.ac.uk"/><link href="http://www.ivoa.net/misc/ivoa_a.css" rel="stylesheet" type="text/css"/><link rel="stylesheet" href="http://www.ivoa.net/misc/ivoa_rec.css" type="text/css"/><link href="./ivoadoc/XMLPrint.css" rel="stylesheet" type="text/css"/><link href="./ivoadoc/ivoa-extras.css" rel="stylesheet" type="text/css"/></head><body><div class="head">  <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="en" lang="en" xsi:schemalocation="http://www.w3.org/1999/xhtml                           http://www.w3.org/2002/08/xhtml/xhtml1-transitional.xsd"><head profile="http://www.w3.org/1999/xhtml/vocab"><title>Universal Worker Service Specification 10 April 2012</title><meta xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/><meta xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" name="Title" content="IVOA WG Internal Draft"/><meta xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/><meta xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" name="author" content="Paul Harrison, paul.harrison@manchester.ac.uk"/><meta xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" name="maintainedBy" content="Paul Harrison, paul.harrison@manchester.ac.uk"/><link xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" href="http://www.ivoa.net/misc/ivoa_a.css" rel="stylesheet" type="text/css"/><link xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" rel="stylesheet" href="http://www.ivoa.net/misc/ivoa_rec.css" type="text/css"/><link xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" href="./ivoadoc/XMLPrint.css" rel="stylesheet" type="text/css"/><link xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:h="http://www.w3.org/1999/xhtml" href="./ivoadoc/ivoa-extras.css" rel="stylesheet" type="text/css"/></head><body><div class="head">
8    <div id="titlehead" style="position:relative;height:170px;width: 500px">    <div id="titlehead" style="position:relative;height:170px;width: 500px">
9    <div id="logo" style="position:absolute;width:300px;height:169px;left: 50px;top: 0px;">      <div id="logo" style="position:absolute;width:300px;height:169px;left: 50px;top: 0px;">
10          <img src="http://www.ivoa.net/pub/images/IVOA_wb_300.jpg"/></div>      <img src="http://www.ivoa.net/pub/images/IVOA_wb_300.jpg" alt="IVOA logo"/></div>
11    <div id="logo-title" style="position:absolute;width:200px;height:115px;left: 320px;top: 5px;">      <div id="logo-title" style="position: absolute; width: 200px; height: 115px; left: 320px; top: 5px; font-size: 14pt; color: #005A9C; font-style: italic;">
12              <p style="position: absolute; left: 0px; top: 0px;"><span style="font-weight: bold;">I</span> nternational</p>
13      <p><b><i><span style="font-size: 14pt; color: #005A9C;"> I</span></i></b><i><span style="font-size: 14pt; color: #005A9C;">nternational</span></i></p>        <p style="position: absolute; left: 15pt; top: 25pt;"><span style="font-weight: bold;">V</span> irtual</p>
14     <p><b><i><span style="font-size: 14pt; color: #005A9C;">    V</span></i></b><i><span style="font-size: 14pt; color: #005A9C;">irtual</span></i></p>        <p style="position: absolute; left: 15pt; top: 50pt;"><span style="font-weight: bold;">O</span> bservatory</p>
15     <p><b><i><span style="font-size: 14pt; color: #005A9C;">    O</span></i></b><i><span style="font-size: 14pt; color: #005A9C;">bservatory</span></i></p>        <p style="position: absolute; left: 0px; top: 75pt;"><span style="font-weight: bold;">A</span> lliance</p>
16     <p><b><i><span style="font-size: 14pt; color: #005A9C;">A</span></i></b><i><span style="font-size: 14pt; color: #005A9C;">lliance</span></i></p>      </div>
 </div>  
17    </div>    </div>
18    <h1>Universal Worker Service Pattern<br/>    <h1>Universal Worker Service Pattern<br/>
19    Version 1.1</h1>    Version <span class="docversion">1.1</span></h1>
20  <h2>IVOA  Recommendation 2011-05-20</h2>  <h2 class="subtitle">IVOA Working Draft  10 April 2012</h2>
21  <dl><dt>Working Group:</dt><dd><a href="http://www.ivoa.net/twiki/bin/view/IVOA/IvoaGridAndWebServices" shape="rect">http://www.ivoa.net/twiki/bin/view/IVOA/IvoaGridAndWebServices</a></dd><dt><b>This version:</b></dt><dd><a href="http://www.ivoa.net/Documents/UWS/20101010/PR-UWS-1.0-20101010.html" shape="rect">http://www.ivoa.net/Documents/UWS/20101010/PR-UWS-1.0-20101010.html</a></dd><dt><b>Latest version:</b></dt><dd><a href="http://www.ivoa.net/Documents/UWS/" shape="rect">http://www.ivoa.net/Documents/UWS/</a></dd><dt><b>Previous version(s):</b></dt><dd> Proposed Recommendation v1.0, 2009-09-09<br />  <dl><dt>Working Group:</dt><dd><a href="http://www.ivoa.net/twiki/bin/view/IVOA/IvoaGridAndWebServices" shape="rect">http://www.ivoa.net/twiki/bin/view/IVOA/IvoaGridAndWebServices</a></dd><dt><b>This version:</b></dt><dd><a href="http://www.ivoa.net/Documents/UWS/20101010/PR-UWS-1.0-20101010.html" shape="rect">http://www.ivoa.net/Documents/UWS/20101010/PR-UWS-1.0-20101010.html</a></dd><dt><b>Latest version:</b></dt><dd><a href="http://www.ivoa.net/Documents/UWS/" shape="rect">http://www.ivoa.net/Documents/UWS/</a></dd><dt><b>Previous version(s):</b></dt><dd> Proposed Recommendation v1.0, 2009-09-09<br/>
22    Recommendation v1.0 2010-10-10<br/>    Recommendation v1.0 2010-10-10<br/>
23  </dd><dt> <br/>  </dd><dt> <br/>
24    </dt><dd> </dd><dt><b>Author(s):</b></dt><dd>  P.    </dt><dd>&nbsp;</dd><dt><b>Author(s):</b></dt><dd>  P.
25      Harrison, G. Rixon</dd></dl>      Harrison, G. Rixon</dd></dl>
26    
27  <h2>Abstract</h2>  <h2>Abstract</h2>
# Line 36  Line 35 
35  The document has been reviewed by IVOA Members and other interested parties, and has been endorsed by the IVOA Executive Committee as an IVOA Recommendation as of 04 October 2010. It is a stable document and may be used as reference material or cited as a normative reference from another document. IVOA's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability inside the Astronomical Community.</p>  The document has been reviewed by IVOA Members and other interested parties, and has been endorsed by the IVOA Executive Committee as an IVOA Recommendation as of 04 October 2010. It is a stable document and may be used as reference material or cited as a normative reference from another document. IVOA's role in making the Recommendation is to draw attention to the specification and to promote its widespread deployment. This enhances the functionality and interoperability inside the Astronomical Community.</p>
36  <p> <em>A list of </em><span style="background: transparent"><a href="http://www.ivoa.net/Documents/" shape="rect"><i>current  <p> <em>A list of </em><span style="background: transparent"><a href="http://www.ivoa.net/Documents/" shape="rect"><i>current
37    IVOA Recommendations and other technical documents</i></a></span><em> can be found at http://www.ivoa.net/Documents/.</em></p>    IVOA Recommendations and other technical documents</i></a></span><em> can be found at http://www.ivoa.net/Documents/.</em></p>
38  <p>The words "MUST", "SHALL", "SHOULD", "MAY", "RECOMMENDED", and "OPTIONAL" (in upper or lower case) used in this document are to be interpreted as described in IETF standard, RFC 2119 <cite>  <p>The words "MUST", "SHALL", "SHOULD", "MAY", "RECOMMENDED", and "OPTIONAL" (in upper or lower case) used in this document are to be interpreted as described in IETF standard, RFC 2119 <cite>[<a href="#std:rfc2119">std:rfc2119</a>]</cite>.</p>
     [<a    href="#std:rfc2119">std:rfc2119</a>]  
     </cite>.</p>  
39  <h2 class="prologue-heading-western">Acknowledgements</h2>  <h2 class="prologue-heading-western">Acknowledgements</h2>
40  <p>The need for the UWS pattern was  <p>The need for the UWS pattern was
41    inspired by AstroGrid&#8217;s Common Execution Architecture and    inspired by AstroGrid&#8217;s Common Execution Architecture and
# Line 47  Line 44 
44    respect of the Open Grid Services Infrastructure that was the    respect of the Open Grid Services Infrastructure that was the
45    fore-runner of Web Services Resource Framework. The REST binding came    fore-runner of Web Services Resource Framework. The REST binding came
46    initially from suggestions by Norman Gray.</p>    initially from suggestions by Norman Gray.</p>
47  </div><h2>Contents</h2><div><?toc?><div    id="toc" class="toc"><ul><li><a href="#Introduction"><span class="secnum">1. </span>Introduction (informative)</a><ul><li><a href="#SynchronousStateless"><span class="secnum">1.1. </span> Synchronous, stateless services</a></li><li><a href="#AsynchronousServices"><span class="secnum">1.2. </span> Asynchronous and stateful services</a></li><li><a href="#JDL"><span class="secnum">1.3. </span> Job description language, service contracts and universality</a></li><li><a href="#IVOARCH"><span class="secnum">1.4. </span> UWS in the IVOA Architecture</a></li></ul></li><li><a href="#UWSpattern"><span class="secnum">2. </span> Universal Worker Service Pattern (normative)</a><ul><li><a href="#UWSObjects"><span class="secnum">2.1. </span> Objects within a UWS</a><ul><li><a href="#Joblist"><span class="secnum">2.1.1. </span>  </div><h2>Contents</h2><div><!--The contents of this div are automatically generated from the following processing instruction when processed with ivoarestructure.xsl-->
48          Job list </a></li><li><a href="#Job"><span class="secnum">2.1.2. </span>Job</a></li><li><a href="#ExecutionPhase"><span class="secnum">2.1.3. </span> Execution Phase</a></li><li><a href="#ExecutionDuration"><span class="secnum">2.1.4. </span> Execution Duration</a></li><li><a href="#DestructionTime"><span class="secnum">2.1.5. </span> Destruction Time</a></li><li><a href="#Quote"><span class="secnum">2.1.6. </span>Quote</a></li><li><a href="#Error"><span class="secnum">2.1.7. </span>Error</a></li><li><a href="#Error2"><span class="secnum">2.1.8. </span>Owner</a></li><li><a href="#Error3"><span class="secnum">2.1.9. </span>RunId</a></li><li><a href="#ResultsList"><span class="secnum">2.1.10. </span>Results List</a></li><li><a href="#ResultsList2"><span class="secnum">2.1.11. </span>Parameter List</a></li></ul></li><li><a href="#RESTbinding"><span class="secnum">2.2. </span>The REST Binding</a><ul><li><a href="#d1e834"><span class="secnum">2.2.1. </span>Resources and URIs</a></li><li><a href="#d1e603"><span class="secnum">2.2.2. </span>Representations of resources</a><ul><li><a href="#d1e1030"><span class="secnum">2.2.2.1. </span>Job List</a></li><li><a href="#d1e1040"><span class="secnum">2.2.2.2. </span>Job</a></li><li><a href="#d1e1344"><span class="secnum">2.2.2.3. </span>Results List</a></li><li><a href="#d1e1353"><span class="secnum">2.2.2.4. </span>Parameters List</a></li><li><a href="#d1e1556"><span class="secnum">2.2.2.5. </span> Error</a></li></ul></li><li><a href="#jobcontrol"><span class="secnum">2.2.3. </span>State changing requests</a><ul><li><a href="#d1e1375"><span class="secnum">2.2.3.1. </span>Creating a Job</a></li><li><a href="#d1e1390"><span class="secnum">2.2.3.2. </span>Deleting a Job</a></li><li><a href="#d1e1402"><span class="secnum">2.2.3.3. </span>Changing the Destruction      <?toc?><div id="toc" class="toc"><ul><li><a href="#Introduction"><span class="secnum">1. </span>Introduction (informative)</a><ul><li><a href="#SynchronousStateless"><span class="secnum">1.1. </span>Synchronous, stateless services</a></li><li><a href="#AsynchronousServices"><span class="secnum">1.2. </span>Asynchronous and stateful services</a></li><li><a href="#JDL"><span class="secnum">1.3. </span>Job description language, service contracts and universality</a></li><li><a href="#IVOARCH"><span class="secnum">1.4. </span>UWS in the IVOA Architecture</a></li></ul></li><li><a href="#UWSpattern"><span class="secnum">2. </span>Universal Worker Service Pattern (normative)</a><ul><li><a href="#UWSObjects"><span class="secnum">2.1. </span>Objects within a UWS</a><ul><li><a href="#Joblist"><span class="secnum">2.1.1. </span>Job list</a></li><li><a href="#Job"><span class="secnum">2.1.2. </span>Job</a></li><li><a href="#ExecutionPhase"><span class="secnum">2.1.3. </span>Execution Phase</a></li><li><a href="#ExecutionDuration"><span class="secnum">2.1.4. </span>Execution Duration</a></li><li><a href="#DestructionTime"><span class="secnum">2.1.5. </span>Destruction Time</a></li><li><a href="#Quote"><span class="secnum">2.1.6. </span>Quote</a></li><li><a href="#Error"><span class="secnum">2.1.7. </span>Error</a></li><li><a href="#Error2"><span class="secnum">2.1.8. </span>Owner</a></li><li><a href="#Error3"><span class="secnum">2.1.9. </span>RunId</a></li><li><a href="#ResultsList"><span class="secnum">2.1.10. </span>Results List</a></li><li><a href="#ResultsList2"><span class="secnum">2.1.11. </span>Parameter List</a></li></ul></li><li><a href="#RESTbinding"><span class="secnum">2.2. </span>The REST Binding</a><ul><li><a href="#d1e834"><span class="secnum">2.2.1. </span>Resources and URIs</a></li><li><a href="#d1e603"><span class="secnum">2.2.2. </span>Representations of resources</a><ul><li><a href="#d1e1030"><span class="secnum">2.2.2.1. </span>Job List</a></li><li><a href="#d1e1040"><span class="secnum">2.2.2.2. </span>Job</a></li><li><a href="#d1e1344"><span class="secnum">2.2.2.3. </span>Results List</a></li><li><a href="#d1e1353"><span class="secnum">2.2.2.4. </span>Parameters List</a></li><li><a href="#d1e1556"><span class="secnum">2.2.2.5. </span>Error</a></li></ul></li><li><a href="#jobcontrol"><span class="secnum">2.2.3. </span>State changing requests</a><ul><li><a href="#d1e1375"><span class="secnum">2.2.3.1. </span>Creating a Job</a><ul><li><a href="#d2e1612"><span class="secnum">2.2.3.1.1. </span>Inline Parameters</a></li></ul></li><li><a href="#d1e1390"><span class="secnum">2.2.3.2. </span>Deleting a Job</a></li><li><a href="#d1e1402"><span class="secnum">2.2.3.3. </span>Changing the Destruction Time</a></li><li><a href="#d1e1420"><span class="secnum">2.2.3.4. </span>Changing the Execution Duration</a></li><li><a href="#d1e1439"><span class="secnum">2.2.3.5. </span>Starting a Job</a></li><li><a href="#d1e1448"><span class="secnum">2.2.3.6. </span>Aborting a Job</a></li></ul></li><li><a href="#d1e708"><span class="secnum">2.2.4. </span>Message pattern</a></li></ul></li></ul></li><li><a href="#security"><span class="secnum">3. </span>Security Considerations (normative)</a></li><li><a href="#ApplicationsOfUWS"><span class="secnum">4. </span>Applications of UWS (informative)</a><ul><li><a href="#Imageservice"><span class="secnum">4.1. </span>Image service with data staging</a></li><li><a href="#ADQLservice"><span class="secnum">4.2. </span>ADQL service with cursor</a></li><li><a href="#ParameterizedApplications"><span class="secnum">4.3. </span>Parameterised applications</a></li></ul></li><li><a href="#SynchronousService"><span class="secnum">5. </span>Implementing a Synchronous Service on top of UWS (informative)</a></li><li><a href="#Updates"><span class="secnum">A. </span>Updates from previous versions</a><ul><li><a href="#d1e1112"><span class="secnum">A.1. </span>At Version 0.5</a></li><li><a href="#d1e1775"><span class="secnum">A.2. </span>At Version 1.0</a></li><li><a href="#ver11"><span class="secnum">A.3. </span>At Version 1.1</a></li></ul></li><li><a href="#UWSSchema"><span class="secnum">B. </span>UWS Schema</a></li></ul></div>
49              Time</a></li><li><a href="#d1e1420"><span class="secnum">2.2.3.4. </span>Changing the Execution      <!--end of autogenerated content--></div><div class="body">
50              Duration</a></li><li><a href="#d1e1439"><span class="secnum">2.2.3.5. </span>        Starting a Job</a></li><li><a href="#d1e1448"><span class="secnum">2.2.3.6. </span>Aborting a Job</a></li></ul></li><li><a href="#d1e708"><span class="secnum">2.2.4. </span>Message pattern</a></li></ul></li></ul></li><li><a href="#security"><span class="secnum">3. </span>Security Considerations (normative)</a></li><li><a href="#ApplicationsOfUWS"><span class="secnum">4. </span> Applications of UWS (informative)</a><ul><li><a href="#Imageservice"><span class="secnum">4.1. </span> Image service with data staging</a></li><li><a href="#ADQLservice"><span class="secnum">4.2. </span> ADQL service with cursor</a></li><li><a href="#ParameterizedApplications"><span class="secnum">4.3. </span> Parameterised applications</a></li></ul></li><li><a href="#SynchronousService"><span class="secnum">5. </span> Implementing a Synchronous Service on top of UWS (informative)</a></li><li><a href="#Updates"><span class="secnum">Appendix A. </span> Updates from previous versions</a><ul><li><a href="#d1e1112"><span class="secnum">Appendix A.1. </span>At Version 0.5</a></li><li><a href="#d1e1775"><span class="secnum">Appendix A.2. </span>At Version 1.0</a></li></ul></li><li><a href="#UWSSchema"><span class="secnum">Appendix B. </span> UWS Schema</a></li></ul></div></div><div class="body">  <div class="section"><h2><a id="Introduction" shape="rect"><span class="secnum">1. </span>Introduction (informative)</a></h2>
 <div class="section"><h2><a name="Introduction" id="Introduction" shape="rect"/><span class="secnum">1. </span>Introduction (informative)</h2>  
51    <p>The Universal Worker Service (UWS)    <p>The Universal Worker Service (UWS)
52      pattern defines how to build <i>asynchronous</i>, <i>stateful</i>, <i>job-oriented</i> services<i> </i>(the italicised terms are defined      pattern defines how to build <i>asynchronous</i>, <i>stateful</i>, <i>job-oriented</i> services<i> </i>(the italicised terms are defined
53      in sub-sections of this introduction). It does so in a way that      in sub-sections of this introduction). It does so in a way that
54      allows for wide-scale reuse of software and support from software      allows for wide-scale reuse of software and support from software
55      toolkits.</p>      toolkits.</p>
56    <p>Section <span    class="xref"><a href="#UWSpattern">2. </a></span>    <p>Section <span class="xref"><a href="#UWSpattern">2</a></span>
57    of this document describes    of this document describes
58      the pattern and lists the aspects that are common to all its      the pattern and lists the aspects that are common to all its
59      applications. Any such application would involve a service contract      applications. Any such application would involve a service contract
60      that embodies the pattern and fixes the issues left undefined in the      that embodies the pattern and fixes the issues left undefined in the
61      pattern itself (see section <span    class="xref"><a href="#JDL">1.3. </a></span>). The contract might include the XML schemata  which form a "job description language" or JDL for the application, or simply a description of the input parameters for the service which are conveyed via typical HTML form encodings. It is intended that each such contract      pattern itself (see section <span class="xref"><a href="#JDL">1.3</a></span>). The contract might include the XML schemata  which form a "job description language" or JDL for the application, or simply a description of the input parameters for the service which are conveyed via typical HTML form encodings. It is intended that each such contract
62      cover a family of related applications, such that the implementations      cover a family of related applications, such that the implementations
63      may be widely reused.</p>      may be widely reused.</p>
64    <p>Section <a href="#ApplicationsOfUWS" shape="rect">4</a> outlines several possible    <p>Section <a href="#ApplicationsOfUWS" shape="rect">4</a> outlines several possible
# Line 70  Line 66 
66      full IVOA standards that are siblings of the current document.</p>      full IVOA standards that are siblings of the current document.</p>
67    <p>Section <a class="xref" href="#SynchronousService" shape="rect">5</a> describes the preferred    <p>Section <a class="xref" href="#SynchronousService" shape="rect">5</a> describes the preferred
68      method of creating a synchronous facade to a UWS system.</p>      method of creating a synchronous facade to a UWS system.</p>
69    <div class="section"><h3><a name="SynchronousStateless" id="SynchronousStateless" shape="rect"/><span class="secnum">1.1. </span> Synchronous, stateless services</h3>    <div class="section"><h3><a id="SynchronousStateless" shape="rect"><span class="secnum">1.1. </span>Synchronous, stateless services</a></h3>
70      <p>Simple web services are <i>synchronous</i> and <i>stateless</i>. Synchronous means that the client waits for      <p>Simple web services are <i>synchronous</i> and <i>stateless</i>. Synchronous means that the client waits for
71        each request to be fulfilled; if the client disconnects from the        each request to be fulfilled; if the client disconnects from the
72        service then the activity is abandoned. <i>Stateless</i> means that        service then the activity is abandoned. <i>Stateless</i> means that
# Line 108  Line 104 
104      <p>Synchronous, stateless services, in      <p>Synchronous, stateless services, in
105        short, do not scale well. The following examples illustrate situations in the VO in which synchronous, stateless services are inadequate.</p>        short, do not scale well. The following examples illustrate situations in the VO in which synchronous, stateless services are inadequate.</p>
106      <ol><li>      <ol><li>
107          <p>An ADQL <cite>          <p>An ADQL <cite>[<a href="#std:adql">std:adql</a>]</cite> service gives access
     [<a    href="#std:adql">std:adql</a>]  
     </cite> service gives access  
108            to a large object-catalogue. Most queries run in less than a minute,            to a large object-catalogue. Most queries run in less than a minute,
109            but some legitimate queries involve a full-table traverse and take            but some legitimate queries involve a full-table traverse and take
110            hours or days. The service needs to run these special cases in a            hours or days. The service needs to run these special cases in a
111            low-priority queue.</p>            low-priority queue.</p>
112        </li><li>        </li><li>
113          <p>An object-finding service runs          <p>An object-finding service runs
114            the SExtractor <cite>            the SExtractor <cite>[<a href="#sextractor">sextractor</a>]</cite> application on a list of images. Normally, the list
     [<a    href="#sextractor">sextractor</a>]  
     </cite> application on a list of images. Normally, the list  
115            is short and the request is quickly satisfied. Occasionally, a list            is short and the request is quickly satisfied. Occasionally, a list
116            of 10,000 images is sent in the expectation that the work will be            of 10,000 images is sent in the expectation that the work will be
117            finished over the weekend.</p>            finished over the weekend.</p>
118        </li><li>        </li><li>
119          <p>A cone-search <cite>          <p>A cone-search <cite>[<a href="#std:scs">std:scs</a>]</cite> request on a
     [<a    href="#std:scs">std:scs</a>]  
     </cite> request on a  
120            rich catalogue raises 10,000,000 rows of results, but the client is            rich catalogue raises 10,000,000 rows of results, but the client is
121            connected via a slow link and cannot read all the results in a            connected via a slow link and cannot read all the results in a
122            reasonable time. The client needs the service to send the results            reasonable time. The client needs the service to send the results
123            into storage over a faster link. This could mean sending them to            into storage over a faster link. This could mean sending them to
124            VOSpace <cite>            VOSpace <cite>[<a href="#std:vospace">std:vospace</a>]</cite>, or simply holding them temporarily at the service until the user can
     [<a    href="#std:vospace">std:vospace</a>]  
     </cite>, or simply holding them temporarily at the service until the user can  
125            retrieve them on a fast link. UWS provides a pattern for doing the latter.</p>            retrieve them on a fast link. UWS provides a pattern for doing the latter.</p>
126        </li><li>        </li><li>
127          <p>An ADQL service allows users to          <p>An ADQL service allows users to
# Line 149  Line 137 
137            processed.</p>            processed.</p>
138        </li></ol>        </li></ol>
139    </div>    </div>
140    <div class="section"><h3><a name="AsynchronousServices" id="AsynchronousServices" shape="rect"/><span class="secnum">1.2. </span> Asynchronous and stateful services</h3>    <div class="section"><h3><a id="AsynchronousServices" shape="rect"><span class="secnum">1.2. </span>Asynchronous and stateful services</a></h3>
141      <p>Services can be made to scale better      <p>Services can be made to scale better
142        by making them <i>asynchronous</i> and <i>stateful</i>. Asynchronous        by making them <i>asynchronous</i> and <i>stateful</i>. Asynchronous
143        means that a client makes two or more separate requests to the        means that a client makes two or more separate requests to the
# Line 176  Line 164 
164        until the service forgets the state &#8211; is generally finite and must        until the service forgets the state &#8211; is generally finite and must
165        be at least as long the duration of the job.</p>        be at least as long the duration of the job.</p>
166    </div>    </div>
167    <div class="section"><h3><a name="JDL" id="JDL" shape="rect"/><span class="secnum">1.3. </span> Job description language, service contracts and universality</h3>    <div class="section"><h3><a id="JDL" shape="rect"><span class="secnum">1.3. </span>Job description language, service contracts and universality</a></h3>
168      <p>Consider the web-service operation      <p>Consider the web-service operation
169        that starts off a job. This operation must express what is to be done        that starts off a job. This operation must express what is to be done
170        in the activity: it must carry parameters in some form.</p>        in the activity: it must carry parameters in some form.</p>
171      <p>The parameters may be expressed as a      <p>The parameters may be expressed as a
172        list. For example, a cone search service takes a list of three parameters:        list. For example, a cone search service takes a list of three parameters:
173        RA, DEC, RADIUS. Alternatively, the parameters may be arranged as an        RA, DEC, RADIUS. Alternatively, the parameters may be arranged as an
174        XML document (e.g. ADQL, CEA <cite>        XML document (e.g. ADQL, CEA <cite>[<a href="#harrison05">harrison05</a>]</cite>). The rules for setting and arranging
     [<a    href="#harrison05">harrison05</a>]  
     </cite>). The rules for setting and arranging  
175        the parameters for a job are called the<i> Job-Description Language </i>(JDL).</p>        the parameters for a job are called the<i> Job-Description Language </i>(JDL).</p>
176      <p>The combination of the UWS pattern, a      <p>The combination of the UWS pattern, a
177        JDL and details of the job state visible to the client defines a        JDL and details of the job state visible to the client defines a
# Line 194  Line 180 
180        standard must specify the rest of the contract.</p>        standard must specify the rest of the contract.</p>
181      <p>If the JDL is very general, a single      <p>If the JDL is very general, a single
182        service-contract can be reused for many kinds of service. AstroGrid&#8217;s        service-contract can be reused for many kinds of service. AstroGrid&#8217;s
183        CEA<cite>        CEA<cite>[<a href="#harrison05">harrison05</a>]</cite>exploits this: one JDL covers all services offering parameterised
     [<a    href="#harrison05">harrison05</a>]  
     </cite>exploits this: one JDL covers all services offering parameterised  
184        applications and even ADQL services. In the limit, a        applications and even ADQL services. In the limit, a
185        sufficiently-general JDL turns a specialized worker service into a        sufficiently-general JDL turns a specialized worker service into a
186        universal worker service.</p>        universal worker service.</p>
187    </div>    </div>
188    <div class="section"><h3><a name="IVOAARCH" id="IVOARCH" shape="rect"/><span class="secnum">1.4. </span> UWS in the IVOA Architecture</h3>    <div class="section"><h3><a id="IVOARCH" shape="rect"><span class="secnum">1.4. </span>UWS in the IVOA Architecture</a></h3>
189      <p><img src="ivoaarchitecture.png" alt="ivoa architectures"/></p>      <p><img src="ivoaarchitecture.png" alt="ivoa architectures"/></p>
190      <p>With the IVOA Architecture above, UWS is a VO  infrastructure standard, being used by other standards and services to enable the development of VO applications managing asynchronous and stateless execution of jobs on VO services. Examples of such jobs include the case where the response must be computed, and that computation time takes longer than the normal expectation in an interactive web session. Additionally the UWS pattern allows a simple form of data sharing of the results of a job that is suitable for "workflow" situations and can be used by Data Access Services (currently Table Access Protocol <cite>      <p>With the IVOA Architecture above, UWS is a VO  infrastructure standard, being used by other standards and services to enable the development of VO applications managing asynchronous and stateless execution of jobs on VO services. Examples of such jobs include the case where the response must be computed, and that computation time takes longer than the normal expectation in an interactive web session. Additionally the UWS pattern allows a simple form of data sharing of the results of a job that is suitable for "workflow" situations and can be used by Data Access Services (currently Table Access Protocol <cite>[<a href="#std:tap">std:tap</a>]</cite>, but potentially by other DAL standards).  It utilizes IVOA standards for security <cite>[<a href="#std:ssoauth">std:ssoauth</a>]</cite> if it is desired that a non-public UWS be created. </p>
     [<a    href="#std:tap">std:tap</a>]  
     </cite>, but potentially by other DAL standards).  It utilizes IVOA standards for security <cite>  
     [<a    href="#std:ssoauth">std:ssoauth</a>]  
     </cite> if it is desired that a non-public UWS be created. </p>  
191      </div>      </div>
192  </div>  </div>
193    <div class="section"><h2><a name="UWSpattern" id="UWSpattern" shape="rect"/><span class="secnum">2. </span> Universal Worker Service Pattern (normative)</h2>    <div class="section"><h2><a id="UWSpattern" shape="rect"><span class="secnum">2. </span>Universal Worker Service Pattern (normative)</a></h2>
194      <div class="section"><h3><a name="UWSObjects" id="UWSObjects" shape="rect"/><span class="secnum">2.1. </span> Objects within a UWS</h3>      <div class="section"><h3><a id="UWSObjects" shape="rect"><span class="secnum">2.1. </span>Objects within a UWS</a></h3>
195        <p>A UWS consists logically of a set of        <p>A UWS consists logically of a set of
196          objects that may be read and written to in order to control jobs. The objects are  represented by elements within the XML schema detailed in <a class="xref" href="#UWSSchema" shape="rect">Appendix B</a>. In a REST binding, these objects are addressed as distinct web-resources each with its own URI. </p>          objects that may be read and written to in order to control jobs. The objects are  represented by elements within the XML schema detailed in <span class="xref"><a href="#UWSSchema">B</a></span>. In a REST binding, these objects are addressed as distinct web-resources each with its own URI. </p>
197        <p> The following sub-sections explain the semantics of the objects. The        <p> The following sub-sections explain the semantics of the objects. The
198          UML diagram below shows the relationships more succinctly.</p>          UML diagram below shows the relationships more succinctly.</p>
199        <p><img src="Class_Diagram__UWS__UWSObjects.png" alt="UWS Objects Class Diagram" width="460" height="390" id="graphics2"/></p>        <p><img src="Class_Diagram__UWS__UWSObjects.png" alt="UWS Objects Class Diagram" width="460" height="390" id="graphics2"/></p>
200        <div class="section"><h4><a name="Joblist" id="Joblist" shape="rect"/><span class="secnum">2.1.1. </span>        <div class="section"><h4><a id="Joblist" shape="rect"><span class="secnum">2.1.1. </span>Job list</a></h4>
         Job list </h4>  
201          <p>The Job List is the outermost object:          <p>The Job List is the outermost object:
202            it contains all the other objects in the UWS. The immediate children            it contains all the other objects in the UWS. The immediate children
203            of the job list are Job objects (see next sub-section).</p>            of the job list are Job objects (see next sub-section).</p>
# Line 230  Line 209 
209            jobs to be deleted. Instead, when a job is destroyed by an action on            jobs to be deleted. Instead, when a job is destroyed by an action on
210            its job object, then the list updates itself accordingly.</p>            its job object, then the list updates itself accordingly.</p>
211        </div>        </div>
212        <div class="section"><h4><a name="Job" id="Job" shape="rect"/><span class="secnum">2.1.2. </span>Job</h4>        <div class="section"><h4><a id="Job" shape="rect"><span class="secnum">2.1.2. </span>Job</a></h4>
213          <p>A Job object contains the state of          <p>A Job object contains the state of
214            one job. The state is a collection of other objects. Each Job            one job. The state is a collection of other objects. Each Job
215            contains:</p>            contains:</p>
# Line 250  Line 229 
229            <p>Zero or one Error.</p>            <p>Zero or one Error.</p>
230          </li></ul>          </li></ul>
231        </div>        </div>
232        <div class="section"><h4><a name="ExecutionPhase" id="ExecutionPhase" shape="rect"/><span class="secnum">2.1.3. </span> Execution Phase</h4>        <div class="section"><h4><a id="ExecutionPhase" shape="rect"><span class="secnum">2.1.3. </span>Execution Phase</a></h4>
233          <p>The job is treated as a state machine          <p>The job is treated as a state machine
234            with the Execution Phase naming the state. The phases are:</p>            with the Execution Phase naming the state. The phases are:</p>
235          <ul><li>          <ul><li>
# Line 286  Line 265 
265          <p><img src="UWSStates.png" alt="UWS state diagram" width="487" height="332"/></p>          <p><img src="UWSStates.png" alt="UWS state diagram" width="487" height="332"/></p>
266                    
267        </div>        </div>
268        <div class="section"><h4><a name="ExecutionDuration" id="ExecutionDuration" shape="rect"/><span class="secnum">2.1.4. </span> Execution Duration</h4>        <div class="section"><h4><a id="ExecutionDuration" shape="rect"><span class="secnum">2.1.4. </span>Execution Duration</a></h4>
269          <p>An Execution Duration object defines          <p>An Execution Duration object defines
270            the duration for which a job shall run.  This represents the            the duration for which a job shall run.  This represents the
271            &#8220;computation time&#8221; that a job is to be allowed, although because            &#8220;computation time&#8221; that a job is to be allowed, although because
# Line 310  Line 289 
289            The service may forbid changes, or may set limits on the allowed            The service may forbid changes, or may set limits on the allowed
290            execution duration.</p>            execution duration.</p>
291        </div>        </div>
292        <div class="section"><h4><a name="DestructionTime" id="DestructionTime" shape="rect"/><span class="secnum">2.1.5. </span> Destruction Time</h4>        <div class="section"><h4><a id="DestructionTime" shape="rect"><span class="secnum">2.1.5. </span>Destruction Time</a></h4>
293          <p>The Destruction Time object          <p>The Destruction Time object
294            represents the instant when the job shall be destroyed. The            represents the instant when the job shall be destroyed. The
295            Destruction Time is an absolute time.</p>            Destruction Time is an absolute time.</p>
# Line 335  Line 314 
314            service may forbid changes, or may set limits on the allowed            service may forbid changes, or may set limits on the allowed
315            destruction time. If there is no destruction time set by the service then this should be indicated in the job XML as a Nill element and as a null string in the returned value for the resource.</p>            destruction time. If there is no destruction time set by the service then this should be indicated in the job XML as a Nill element and as a null string in the returned value for the resource.</p>
316        </div>        </div>
317        <div class="section"><h4><a name="Quote" id="Quote" shape="rect"/><span class="secnum">2.1.6. </span>Quote</h4>        <div class="section"><h4><a id="Quote" shape="rect"><span class="secnum">2.1.6. </span>Quote</a></h4>
318          <p>A Quote object predicts when the job          <p>A Quote object predicts when the job
319            is likely to complete. The intention is that a client creates the            is likely to complete. The intention is that a client creates the
320            same job on several services, compares the quotes and then accepts            same job on several services, compares the quotes and then accepts
# Line 346  Line 325 
325            uniform across all UWS, but it may supply a &#8220;don't know&#8221; answer            uniform across all UWS, but it may supply a &#8220;don't know&#8221; answer
326            for the completion time, indicated by a negative value or an XML nil element in an XML representation of the quote object.</p>            for the completion time, indicated by a negative value or an XML nil element in an XML representation of the quote object.</p>
327        </div>        </div>
328        <div class="section"><h4><a name="Error" id="Error" shape="rect"/><span class="secnum">2.1.7. </span>Error</h4>        <div class="section"><h4><a id="Error" shape="rect"><span class="secnum">2.1.7. </span>Error</a></h4>
329          <p>The error object gives a human-readable error message for the underlying job. This object          <p>The error object gives a human-readable error message for the underlying job. This object
330            is intended to be a detailed error message, and consequently might be            is intended to be a detailed error message, and consequently might be
331            a large piece of text such as a stack trace. When there is an error            a large piece of text such as a stack trace. When there is an error
332            running a job, a summary of the error should also be given using the            running a job, a summary of the error should also be given using the
333            optional errorSummary element of the  Job element.</p>            optional errorSummary element of the  Job element.</p>
334        </div>        </div>
335        <div class="section"><h4><a name="Error" id="Error2" shape="rect"/><span class="secnum">2.1.8. </span>Owner</h4>        <div class="section"><h4><a id="Error2" shape="rect"><span class="secnum">2.1.8. </span>Owner</a></h4>
336          <p>The owner object represents the identifier for the creator of the job. This object will not exist for all invocations of a UWS conformant protocol, but only in cases where the access to the service is authenticated as discussed more thoroughly in section          <p>The owner object represents the identifier for the creator of the job. This object will not exist for all invocations of a UWS conformant protocol, but only in cases where the access to the service is authenticated as discussed more thoroughly in section
337            <span    class="xref"><a href="#security">3. </a></span>. </p>            <span class="xref"><a href="#security">3</a></span>. </p>
338        </div>        </div>
339        <div class="section"><h4><a name="Error" id="Error3" shape="rect"/><span class="secnum">2.1.9. </span>RunId</h4>        <div class="section"><h4><a id="Error3" shape="rect"><span class="secnum">2.1.9. </span>RunId</a></h4>
340          <p>The RunId object represents an identifier that the job creator uses to identify the job. Note that this is distinct from the Job Identifier that the UWS system itself assigns to each job. The UWS system should do no parsing or processing of the RunId, but merely pass back the value (if it exists) as it was passed to the UWS at job creation time. In particular it may be the case that multiple jobs have the same RunId, as this is a mechanism by which the calling process can identify jobs that belong to a particular group. The exact mechanism of setting the RunId is not specified here, but will be part of the specification of the protocol using the UWS pattern.</p>          <p>The RunId object represents an identifier that the job creator uses to identify the job. Note that this is distinct from the Job Identifier that the UWS system itself assigns to each job. The UWS system should do no parsing or processing of the RunId, but merely pass back the value (if it exists) as it was passed to the UWS at job creation time. In particular it may be the case that multiple jobs have the same RunId, as this is a mechanism by which the calling process can identify jobs that belong to a particular group. The exact mechanism of setting the RunId is not specified here, but will be part of the specification of the protocol using the UWS pattern.</p>
341        </div>        </div>
342        <div class="section"><h4><a name="ResultsList" id="ResultsList" shape="rect"/><span class="secnum">2.1.10. </span>Results List</h4>        <div class="section"><h4><a id="ResultsList" shape="rect"><span class="secnum">2.1.10. </span>Results List</a></h4>
343          <p>The Results List object is a          <p>The Results List object is a
344            container for formal results of the job. Its children may be any            container for formal results of the job. Its children may be any
345            objects resulting from the computation that may be fetched from the            objects resulting from the computation that may be fetched from the
# Line 371  Line 350 
350            be read but not updated or deleted. The client cannot add anything            be read but not updated or deleted. The client cannot add anything
351            to the Results List.</p>            to the Results List.</p>
352        </div>        </div>
353        <div class="section"><h4><a name="ResultsList" id="ResultsList2" shape="rect"/><span class="secnum">2.1.11. </span>Parameter List</h4>        <div class="section"><h4><a id="ResultsList2" shape="rect"><span class="secnum">2.1.11. </span>Parameter List</a></h4>
354          <p>The  Parameter List is an          <p>The  Parameter List is an
355            enumeration of the Job parameters. The form that the parameters take will depend on the JDL of the implementing service - for instance if the JDL is expressed as a single XML document, then there would be a single "parameter" that was that XML document. For services where the JDL consists of a list of name/value pairs (typical of the standard IVOA "simple" access protocols), then these would naturally be expressed in the parameter list. Each parameter value may be expressed either directly as the content of the parameter element, or the value expressed "by reference", where there returned parameter value is a URL that points to the location where the actual parameter value is stored.</p>            enumeration of the Job parameters. The form that the parameters take will depend on the JDL of the implementing service - for instance if the JDL is expressed as a single XML document, then there would be a single "parameter" that was that XML document. For services where the JDL consists of a list of name/value pairs (typical of the standard IVOA "simple" access protocols), then these would naturally be expressed in the parameter list. Each parameter value may be expressed either directly as the content of the parameter element, or the value expressed "by reference", where there returned parameter value is a URL that points to the location where the actual parameter value is stored.</p>
356          <p>A particular implementation of UWS may choose to allow the parameters to be updated (but not created) after the initial job creation step, before the PHASE is set to the executing state. It is up to the individual implementation to specify exactly how these parameters may be updated, but good practice (in the REST binding) would be to choose one of the following options.</p>          <p>A particular implementation of UWS may choose to allow the parameters to be updated (but not created) after the initial job creation step, before the PHASE is set to the executing state. It is up to the individual implementation to specify exactly how these parameters may be updated, but good practice (in the REST binding) would be to choose one of the following options.</p>
357          <ol><li>HTTP POST an <i>application/x-www-form-urlencoded</i><b> </b>parameter name, value pair to either          <ol><li>HTTP POST an <i>application/x-www-form-urlencoded</i><b> </b>parameter name, value pair to either
358              <ol>              <ol><li>/{jobs}/{job-id}</li><li>/{jobs}/{job-id}/parameters</li></ol>
               <li>/{jobs}/{job-id}</li><li>/{jobs}/{job-id}/parameters</li></ol>  
359            </li><li>HTTP PUT the parameter value to /{jobs}/{job-id}/parameters/(parameter-name)</li></ol>            </li><li>HTTP PUT the parameter value to /{jobs}/{job-id}/parameters/(parameter-name)</li></ol>
360          <p>Additionally a particular implementation of UWS may allow the "job control" parameters (see section <span    class="xref"><a href="#jobcontrol">2.2.3. </a></span>) to be specified as part of the JDL. If doing this then the implementation must document the possibility and must use the standard parameter names (which may cause a conflict with parameters in the JDL, which is one of the reasons for the two stage job creation pattern of UWS).</p>          <p>Additionally a particular implementation of UWS may allow the "job control" parameters (see section <span class="xref"><a href="#jobcontrol">2.2.3</a></span>) to be specified as part of the JDL. If doing this then the implementation must document the possibility and must use the standard parameter names (which may cause a conflict with parameters in the JDL, which is one of the reasons for the two stage job creation pattern of UWS).</p>
361        </div>        </div>
362      </div>      </div>
363      <div class="section"><h3><a name="RESTbinding" id="RESTbinding" shape="rect"/><span class="secnum">2.2. </span>The REST Binding</h3>      <div class="section"><h3><a id="RESTbinding" shape="rect"><span class="secnum">2.2. </span>The REST Binding</a></h3>
364        <p>In order to create a usable service the objects discussed in the section above must be exposed in a particular interface which can be addressed over a particular transport mechanism - this combination is known as a "binding". In this first version of the UWS pattern only a REST (Representational State        <p>In order to create a usable service the objects discussed in the section above must be exposed in a particular interface which can be addressed over a particular transport mechanism - this combination is known as a "binding". In this first version of the UWS pattern only a REST (Representational State
365        Transfer) style binding <cite>        Transfer) style binding <cite>[<a href="#fielding00">fielding00</a>]</cite>is presented, however, future versions of this document will add other bindings such as SOAP. <cite>[<a href="#std:soap">std:soap</a>]</cite>. It should be noted that REST is based on HTTP <cite>[<a href="#std:http">std:http</a>]</cite> and as such the REST binding inherits standard HTTP behaviours. In particular it should be noted that the REST binding makes use of HTTP status codes to control the behaviour of the client, especially the "300" class redirection codes to ensure that the client requests particular resources after state changing operations. If a request is made to a resource that does not exist (e.g. an non-existant job-id) then a 404 error should be returned, or if a request is made that is illegal for the current state of the UWS then a 403 status should be returned. If for some reason there is a complete failure in the underlying UWS machinery then a 500 "internal server error" status should be returned. However individual job failures are indicated by setting the appropriate parts of the job representation to error statuses and a request for the individual job object representation at /(jobs)/(jobid) should have a normal 200 status code response.</p>
     [<a    href="#fielding00">fielding00</a>]  
     </cite>is presented, however, future versions of this document will add other bindings such as SOAP. <cite>  
     [<a    href="#std:soap">std:soap</a>]  
     </cite>. It should be noted that REST is based on HTTP <cite>  
     [<a    href="#std:http">std:http</a>]  
     </cite> and as such the REST binding inherits standard HTTP behaviours. In particular it should be noted that the REST binding makes use of HTTP status codes to control the behaviour of the client, especially the "300" class redirection codes to ensure that the client requests particular resources after state changing operations. If a request is made to a resource that does not exist (e.g. an non-existant job-id) then a 404 error should be returned, or if a request is made that is illegal for the current state of the UWS then a 403 status should be returned. If for some reason there is a complete failure in the underlying UWS machinery then a 500 "internal server error" status should be returned. However individual job failures are indicated by setting the appropriate parts of the job representation to error statuses and a request for the individual job object representation at /(jobs)/(jobid) should have a normal 200 status code response.</p>  
366            
367        <div class="section"><h4><a name="d1e834" id="d1e834" shape="rect"/><span class="secnum">2.2.1. </span>Resources and URIs</h4>        <div class="section"><h4><a id="d1e834" shape="rect"><span class="secnum">2.2.1. </span>Resources and URIs</a></h4>
368          <p>In a REST (Representational State          <p>In a REST (Representational State
369            Transfer) binding of UWS, each of the objects defined above is            Transfer) binding of UWS, each of the objects defined above is
370            available as a web resource with its own URI. These URIs must form a            available as a web resource with its own URI. These URIs must form a
371            hierarchy as shown in the table below:</p>            hierarchy as shown in the table below:</p>
372          <table border="1" cellpadding="2" cellspacing="0"><tr><th scope="col" rowspan="1" colspan="1">URI</th><th scope="col" rowspan="1" colspan="1">Description</th><th scope="col" rowspan="1" colspan="1">Representation</th></tr><tr><td rowspan="1" colspan="1">/{jobs}</td><td rowspan="1" colspan="1">the Job List</td><td rowspan="1" colspan="1"> the <span class="xmlelement">&lt;jobs&gt;</span> element in the UWS schema</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)</td><td rowspan="1" colspan="1">a Job</td><td rowspan="1" colspan="1"><p>the <span class="xmlelement">&lt;job&gt;</span> element in the UWS schema<br/>          <table border="1" cellpadding="2" cellspacing="0"><tr><th scope="col" rowspan="1" colspan="1">URI</th><th scope="col" rowspan="1" colspan="1">Description</th><th scope="col" rowspan="1" colspan="1">Representation</th></tr><tr><td rowspan="1" colspan="1">/{jobs}</td><td rowspan="1" colspan="1">the Job List</td><td rowspan="1" colspan="1"> the <span class="xmlelement">&lt;jobs&gt;</span> element in the UWS schema</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)</td><td rowspan="1" colspan="1">a Job</td><td rowspan="1" colspan="1"><p>the <span class="xmlelement">&lt;job&gt;</span> element in the UWS schema<br/>
373              </p></td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/phase</td><td rowspan="1" colspan="1"> the Phase of job              </p></td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/phase</td><td rowspan="1" colspan="1"> the Phase of job
374            (job-id)</td>            (job-id)</td><td rowspan="1" colspan="1">One of the fixed strings</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/executionduration</td><td rowspan="1" colspan="1">the
375              <td rowspan="1" colspan="1">One of the fixed strings</td>            maximum execution duration of (job-id)</td><td rowspan="1" colspan="1">Integer number of seconds.</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/destruction</td><td rowspan="1" colspan="1"> the
376              </tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/executionduration</td><td rowspan="1" colspan="1">the            destruction instant for (job-id)</td><td rowspan="1" colspan="1"><cite>[<a href="#std:iso8601">std:iso8601</a>]</cite> if no destruction time then return empty string.</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/error</td><td rowspan="1" colspan="1">any error
           maximum execution duration of (job-id)</td>  
           <td rowspan="1" colspan="1">Integer number of seconds.</td>  
           </tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/destruction</td><td rowspan="1" colspan="1"> the  
           destruction instant for (job-id)</td>  
           <td rowspan="1" colspan="1"><cite>  
     [<a    href="#std:iso8601">std:iso8601</a>]</cite> if no destruction time then return empty string.</td>  
           </tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/error</td><td rowspan="1" colspan="1">any error  
377            message associated with (job-id)</td><td rowspan="1" colspan="1">any representation appropriate to the implementing service</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/quote </td><td rowspan="1" colspan="1">the Quote for            message associated with (job-id)</td><td rowspan="1" colspan="1">any representation appropriate to the implementing service</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/quote </td><td rowspan="1" colspan="1">the Quote for
378            (job-id)</td><td rowspan="1" colspan="1">Integer number of seconds</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/results</td><td rowspan="1" colspan="1">any parameters for the job            (job-id)</td><td rowspan="1" colspan="1">Integer number of seconds</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/results</td><td rowspan="1" colspan="1">any parameters for the job
379            (job-id)</td>            (job-id)</td><td rowspan="1" colspan="1">the <span class="xmlelement">&lt;results&gt;</span> element in the UWS schema.</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/parameters</td><td rowspan="1" colspan="1">any parameters for the job
380            <td rowspan="1" colspan="1">the <span class="xmlelement">&lt;results&gt;</span> element in the UWS schema.</td>            (job-id)</td><td rowspan="1" colspan="1">the <span class="xmlelement">&lt;parameters&gt;</span> element in the UWS schema.</td></tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/owner</td><td rowspan="1" colspan="1">the owner of the job (job-id)</td><td rowspan="1" colspan="1">an appropriate identifier as discussed in
381            </tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/parameters</td><td rowspan="1" colspan="1">any parameters for the job                <span class="xref"><a href="#security">3</a></span></td></tr></table>
           (job-id)</td>  
           <td rowspan="1" colspan="1">the <span class="xmlelement">&lt;parameters&gt;</span> element in the UWS schema.</td>  
           </tr><tr><td rowspan="1" colspan="1">/{jobs}/(job-id)/owner</td><td rowspan="1" colspan="1">the owner of the job (job-id)</td><td rowspan="1" colspan="1">an appropriate identifier as discussed in  
               <span    class="xref"><a href="#security">3. </a></span></td></tr></table>  
382          <p>The service implementer is free to          <p>The service implementer is free to
383            choose the names given in parentheses above, i.e. the root of the URI tree, and the form that the job identifier takes (though note that it should be a legal URI path element) - the other names are part            choose the names given in parentheses above, i.e. the root of the URI tree, and the form that the job identifier takes (though note that it should be a legal URI path element) - the other names are part
384            of the UWS standard.</p>            of the UWS standard.</p>
# Line 425  Line 386 
386            absolute form is the root URI for the whole UWS. This URI should be            absolute form is the root URI for the whole UWS. This URI should be
387            given as the access URL in the UWS registration.</p>            given as the access URL in the UWS registration.</p>
388        </div>        </div>
389        <div class="section"><h4><a name="d1e603" id="d1e603" shape="rect"/><span class="secnum">2.2.2. </span>Representations of resources</h4>        <div class="section"><h4><a id="d1e603" shape="rect"><span class="secnum">2.2.2. </span>Representations of resources</a></h4>
390          <p>Each of the UWS objects is mapped to a resource URI as detailed in the table above, and for each URI, a HTTP GET          <p>Each of the UWS objects is mapped to a resource URI as detailed in the table above, and for each URI, a HTTP GET
391            fetches a representation of that resource. In general where an object is a container for other objects (Job List, Job, Result List, Parameter List) then an XML representation of the object should be returned, otherwise for simple atomic types (Quote, Execution Duration etc.) a textual (mime type "text/plain") representation should be returned. The XML schema for the various objects described above is            fetches a representation of that resource. In general where an object is a container for other objects (Job List, Job, Result List, Parameter List) then an XML representation of the object should be returned, otherwise for simple atomic types (Quote, Execution Duration etc.) a textual (mime type "text/plain") representation should be returned. The XML schema for the various objects described above is
392            detailed in            detailed in appendix
393            <span    class="xref"><a href="#UWSSchema">Appendix B. </a></span>            <span class="xref"><a href="#UWSSchema">B</a></span>
394            of this specification. This schema is the definitive description of the exact form of the XML returned by a UWS and must not vary between implementations.</p>            of this specification. This schema is the definitive description of the exact form of the XML returned by a UWS and must not vary between implementations.</p>
395          <p>HTTP allows multiple representations          <p>HTTP allows multiple representations
396            of a resource distinguished by their MIME types and selected by the            of a resource distinguished by their MIME types and selected by the
# Line 444  Line 405 
405            their users should accept only "application/xml,text/plain". A UWS must therefore            their users should accept only "application/xml,text/plain". A UWS must therefore
406            return XML representations of the resources in preference to the HTML representation. A technique that may be used to always return XML that modern browsers can transform on the client-side to HTML is via the <span class="xmlelement">&lt;?xml-stylesheet ?&gt;</span> processing instruction, which can be used to point to a suitable XSL resource to perform the transformation. </p>            return XML representations of the resources in preference to the HTML representation. A technique that may be used to always return XML that modern browsers can transform on the client-side to HTML is via the <span class="xmlelement">&lt;?xml-stylesheet ?&gt;</span> processing instruction, which can be used to point to a suitable XSL resource to perform the transformation. </p>
407          <p> More detail for some of the UWS objects is provided below.</p>          <p> More detail for some of the UWS objects is provided below.</p>
408          <div class="section"><h4><a name="d1e1030" id="d1e1030" shape="rect"/><span class="secnum">2.2.2.1. </span>Job List</h4>          <div class="section"><h4><a id="d1e1030" shape="rect"><span class="secnum">2.2.2.1. </span>Job List</a></h4>
409            <p>The representation of the Job List is            <p>The representation of the Job List is
410              a list of links to extant jobs. The list may be empty if the UWS is              a list of links to extant jobs. The list may be empty if the UWS is
411              idle. The  Job List should </p>              idle. The  Job List should </p>
412          </div>          </div>
413          <div class="section"><h4><a name="d1e1040" id="d1e1040" shape="rect"/><span class="secnum">2.2.2.2. </span>Job</h4>          <div class="section"><h4><a id="d1e1040" shape="rect"><span class="secnum">2.2.2.2. </span>Job</a></h4>
414            <p>The representation of a Job is as specified by the <span class="xmlelement">&lt;job&gt;</span> element in the UWS schema as detailed in <span    class="xref"><a href="#UWSSchema">Appendix B. </a></span>            <p>The representation of a Job is as specified by the <span class="xmlelement">&lt;job&gt;</span> element in the UWS schema as detailed in appendix <span class="xref"><a href="#UWSSchema">B</a></span>
415            an example or such a job instance is shown below</p>            an example or such a job instance is shown below</p>
416            <div><?incxml href="../UWSJobInstance.xml" ?><div    class="viewxml"><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:job</span> <span class="attribute-name">xsi:schemaLocation</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/UWS/v1.0 UWS.xsd "</span> <span class="attribute-name">xmlns:xml</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/XML/1998/namespace"</span> <span class="attribute-name">xmlns:uws</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/UWS/v1.0"</span> <span class="attribute-name">xmlns:xlink</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/1999/xlink"</span> <span class="attribute-name">xmlns:xsi</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/2001/XMLSchema-instance"</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:jobId</span><span class="markup">&gt;</span><span class="text">cea-agdevel.jb.man.ac.uk-130.88.24.18-1242749568029-508182314</span><span class="markup">&lt;/</span><span class="end-tag">uws:jobId</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:ownerId</span> <span class="attribute-name">xsi:nil</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">/&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:phase</span><span class="markup">&gt;</span><span class="text">COMPLETED</span><span class="markup">&lt;/</span><span class="end-tag">uws:phase</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:startTime</span><span class="markup">&gt;</span><span class="text">2009-05-19T17:12:48.038+01:00</span><span class="markup">&lt;/</span><span class="end-tag">uws:startTime</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:endTime</span><span class="markup">&gt;</span><span class="text">2009-05-19T17:12:48.041+01:00</span><span class="markup">&lt;/</span><span class="end-tag">uws:endTime</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:executionDuration</span><span class="markup">&gt;</span><span class="text">86400</span><span class="markup">&lt;/</span><span class="end-tag">uws:executionDuration</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:destruction</span><span class="markup">&gt;</span><span class="text">2009-05-29T17:12:48.035+01:00</span><span class="markup">&lt;/</span><span class="end-tag">uws:destruction</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:parameters</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:parameter</span> <span class="attribute-name">id</span><span class="markup">=</span><span class="attribute-value">"scaleFactor"</span><span class="markup">&gt;</span><span class="text">1.8</span><span class="markup">&lt;/</span><span class="end-tag">uws:parameter</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:parameter</span> <span class="attribute-name">id</span><span class="markup">=</span><span class="attribute-value">"image"</span> <span class="attribute-name">byReference</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><span class="text">            <div><!--The contents of this div are automatically generated from the following processing instruction when processed with ivoarestructure.xsl-->
417           http://myserver.org/uws/jobs/jobid123/param/image</span><span class="markup">&lt;/</span><span class="end-tag">uws:parameter</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">uws:parameters</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:results</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:result</span> <span class="attribute-name">id</span><span class="markup">=</span><span class="attribute-value">"correctedImage"</span> <span class="attribute-name">xlink:href</span><span class="markup">=</span><span class="attribute-value">"http://myserver.org/uws/jobs/jobid123/result/image"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">uws:results</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:errorSummary</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"transient"</span> <span class="attribute-name">hasDetail</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">uws:message</span><span class="markup">&gt;</span><span class="text">we have problem</span><span class="markup">&lt;/</span><span class="end-tag">uws:message</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">uws:errorSummary</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:jobInfo</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">any</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xml</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">thatyouwant</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xml</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">any</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">uws:jobInfo</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">uws:job</span><span class="markup">&gt;</span></div></div></div>      <?incxml href="../UWSJobInstance.xml" ?><h:div xmlns:h="http://www.w3.org/1999/xhtml" class="viewxml"><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:job</span> <span class="attribute-name">xsi:schemaLocation</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/UWS/v1.0 UWS.xsd "</span> <span class="attribute-name">xmlns:xml</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/XML/1998/namespace"</span> <span class="attribute-name">xmlns:uws</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/UWS/v1.0"</span> <span class="attribute-name">xmlns:xlink</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/1999/xlink"</span> <span class="attribute-name">xmlns:xsi</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/2001/XMLSchema-instance"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:jobId</span><span class="markup">&gt;</span><span class="text">cea-agdevel.jb.man.ac.uk-130.88.24.18-1242749568029-508182314</span><span class="markup">&lt;/</span><span class="end-tag">uws:jobId</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:ownerId</span> <span class="attribute-name">xsi:nil</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:phase</span><span class="markup">&gt;</span><span class="text">COMPLETED</span><span class="markup">&lt;/</span><span class="end-tag">uws:phase</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:startTime</span><span class="markup">&gt;</span><span class="text">2009-05-19T17:12:48.038+01:00</span><span class="markup">&lt;/</span><span class="end-tag">uws:startTime</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:endTime</span><span class="markup">&gt;</span><span class="text">2009-05-19T17:12:48.041+01:00</span><span class="markup">&lt;/</span><span class="end-tag">uws:endTime</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:executionDuration</span><span class="markup">&gt;</span><span class="text">86400</span><span class="markup">&lt;/</span><span class="end-tag">uws:executionDuration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:destruction</span><span class="markup">&gt;</span><span class="text">2009-05-29T17:12:48.035+01:00</span><span class="markup">&lt;/</span><span class="end-tag">uws:destruction</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:parameters</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:parameter</span> <span class="attribute-name">id</span><span class="markup">=</span><span class="attribute-value">"scaleFactor"</span><span class="markup">&gt;</span><span class="text">1.8</span><span class="markup">&lt;/</span><span class="end-tag">uws:parameter</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:parameter</span> <span class="attribute-name">id</span><span class="markup">=</span><span class="attribute-value">"image"</span> <span class="attribute-name">byReference</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><span class="text">
418             http://myserver.org/uws/jobs/jobid123/param/image</span><span class="markup">&lt;/</span><span class="end-tag">uws:parameter</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">uws:parameters</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:results</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:result</span> <span class="attribute-name">id</span><span class="markup">=</span><span class="attribute-value">"correctedImage"</span> <span class="attribute-name">xlink:href</span><span class="markup">=</span><span class="attribute-value">"http://myserver.org/uws/jobs/jobid123/result/image"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:result</span> <span class="attribute-name">id</span><span class="markup">=</span><span class="attribute-value">"name"</span><span class="markup">&gt;</span><span class="text">inline</span><span class="markup">&lt;/</span><span class="end-tag">uws:result</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">uws:results</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:errorSummary</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"transient"</span> <span class="attribute-name">hasDetail</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:message</span><span class="markup">&gt;</span><span class="text">we have problem</span><span class="markup">&lt;/</span><span class="end-tag">uws:message</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">uws:errorSummary</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">uws:jobInfo</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">any</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xml</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">thatyouwant</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xml</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">any</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">uws:jobInfo</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">uws:job</span><span class="markup">&gt;</span></div></h:div>
419        <!--end of autogenerated content--></div>
420        
421        
422        
423        
424        
425        
426        
427            <p>The <span class="xmlelement">&lt;job&gt;</span> element has placeholders of all of the standard UWS objects, and in addition there is a <span class="xmlelement">&lt;uws:jobinfo&gt;</span> element which can be used by implementations to include any extra information within the job description.</p>            <p>The <span class="xmlelement">&lt;job&gt;</span> element has placeholders of all of the standard UWS objects, and in addition there is a <span class="xmlelement">&lt;uws:jobinfo&gt;</span> element which can be used by implementations to include any extra information within the job description.</p>
428          </div>          </div>
429          <div class="section"><h4><a name="d1e1344" id="d1e1344" shape="rect"/><span class="secnum">2.2.2.3. </span>Results List</h4>          <div class="section"><h4><a id="d1e1344" shape="rect"><span class="secnum">2.2.2.3. </span>Results List</a></h4>
430            <p>The representation of a Results List            <p>The representation of a Results List
431              is a list of links to the resources representing the results. These              is a list of links to the resources representing the results. These
432              resources may have any URI and any MIME type. A sensible default for              resources may have any URI and any MIME type. A sensible default for
# Line 467  Line 437 
437              Results List to find the results. Each result in a result list must be given a unique identifier. Where a protocol applying UWS              Results List to find the results. Each result in a result list must be given a unique identifier. Where a protocol applying UWS
438              specifies standard results it must do so fixing the identifier for those results and fixing the result URIs, however the UWS must still return a valid Results List at  /{jobs}/(job-id)/results, even though in this case the identifiers and URIs could be precomputed by the client.</p>              specifies standard results it must do so fixing the identifier for those results and fixing the result URIs, however the UWS must still return a valid Results List at  /{jobs}/(job-id)/results, even though in this case the identifiers and URIs could be precomputed by the client.</p>
439          </div>          </div>
440                   <div class="section"><h4><a name="d1e1353" id="d1e1353" shape="rect"/><span class="secnum">2.2.2.4. </span>Parameters List</h4>                   <div class="section"><h4><a id="d1e1353" shape="rect"><span class="secnum">2.2.2.4. </span>Parameters List</a></h4>
441            The representation of the parameters list is a list of            The representation of the parameters list is a list of
442            <span class="xmlelement">&lt;parameter&gt;</span> elements. Each of these elements can either represent the value of the parameter directly, where the content of the element is a textual representation of the parameter, or in the case where the parameter value cannot be represented legally within XML (e.g. the parameter is a binary type such as a FITS file) then the content of the parameter is a URL to the parameter value - to indicate this case the attribute byReference is set to "true".</div>            <span class="xmlelement">&lt;parameter&gt;</span> elements. Each of these elements can either represent the value of the parameter directly, where the content of the element is a textual representation of the parameter, or in the case where the parameter value cannot be represented legally within XML (e.g. the parameter is a binary type such as a FITS file) then the content of the parameter is a URL to the parameter value - to indicate this case the attribute byReference is set to "true".</div>
443            <div class="section"><h4><a name="d1e1556" id="d1e1556" shape="rect"/><span class="secnum">2.2.2.5. </span> Error</h4>            <div class="section"><h4><a id="d1e1556" shape="rect"><span class="secnum">2.2.2.5. </span>Error</a></h4>
444            <p>When an error occurs in a job the UWS must signal this at a minimum by setting the PHASE to error. In addition the <span class="xmlelement">&lt;errorSummary&gt;</span> element, giving a brief summary of the error, should be included within the <span class="xmlelement">&lt;job&gt;</span> element. The UWS may include a more detailed error message for example an execution log or stack trace by providing such a resource at the /{jobs}/(jobid)/error URI. It is the responsibility of the implementing service to specify the form that such an error message may take.</p>            <p>When an error occurs in a job the UWS must signal this at a minimum by setting the PHASE to error. In addition the <span class="xmlelement">&lt;errorSummary&gt;</span> element, giving a brief summary of the error, should be included within the <span class="xmlelement">&lt;job&gt;</span> element. The UWS may include a more detailed error message for example an execution log or stack trace by providing such a resource at the /{jobs}/(jobid)/error URI. It is the responsibility of the implementing service to specify the form that such an error message may take.</p>
445            </div>            </div>
446        </div>        </div>
447        <div class="section"><h4><a name="jobcontrol" id="jobcontrol" shape="rect"/><span class="secnum">2.2.3. </span>State changing requests</h4>        <div class="section"><h4><a id="jobcontrol" shape="rect"><span class="secnum">2.2.3. </span>State changing requests</a></h4>
448          <p>Certain of the UWS' resources accept          <p>Certain of the UWS' resources accept
449            HTTP POST and DELETE messages to change the state of the service &#8211;            HTTP POST and DELETE messages to change the state of the service &#8211;
450            This is the fundamental way that a client controls the execution of a            This is the fundamental way that a client controls the execution of a
# Line 488  Line 458 
458              the XHMTL interface. A client that wants to obtain only the value of              the XHMTL interface. A client that wants to obtain only the value of
459              a particular sub-object can at any time request that sub-object with              a particular sub-object can at any time request that sub-object with
460            a HTTP GET.</span></p>            a HTTP GET.</span></p>
461          <div class="section"><h4><a name="d1e1375" id="d1e1375" shape="rect"/><span class="secnum">2.2.3.1. </span>Creating a Job</h4>          <div class="section"><h4><a id="d1e1375" shape="rect"><span class="secnum">2.2.3.1. </span>Creating a Job</a></h4>
462            <p>POSTing a request to the Job List            <p>POSTing a request to the Job List
463              creates a new job (unless the service rejects the request). The              creates a new job (unless the service rejects the request). The
464              response when a job is accepted must have code 303 &#8220;See other&#8221;              response when a job is accepted must have code 303 &#8220;See other&#8221;
# Line 496  Line 466 
466              job.</p>              job.</p>
467            <p>This initial POST will in most cases            <p>This initial POST will in most cases
468              carry parameters for the protocol that is using the UWS pattern, as              carry parameters for the protocol that is using the UWS pattern, as
469              detailed in <span    class="xref"><a href="#ApplicationsOfUWS">4. </a></span>              detailed in <span class="xref"><a href="#ApplicationsOfUWS">4</a></span>
470              .In addition for the initial post may contain job control parameters if allowed by the implementing protocol (i.e. if UWS job control parameter names do not clash with the implementing protocol parameters). One use of this facility might be to have the job placed into a potentially running state by adding PHASE=RUN to the job creation step.</p>              .In addition for the initial post may contain job control parameters if allowed by the implementing protocol (i.e. if UWS job control parameter names do not clash with the implementing protocol parameters). One use of this facility might be to have the job placed into a potentially running state by adding PHASE=RUN to the job creation step.</p>
471            <div class="section">            <div class="section"><h4><a id="d2e1612" shape="rect"><span class="secnum">2.2.3.1.1. </span>Inline Parameters</a></h4>
472              <h4>Inline Parameters</h4>              <p>The JDL may allow parameter values to be uploaded in-line - in this case the UWS should accept the parameter content as multipart/form-data encoded in the POST with the formal value of the parameter being a "byReference" type using the special URI scheme "param" with the path part of the URI matching the name attribute of the multipart/form-data encoding content part. The content of such an in-line parameter should be made available as part of the job resource tree at /{jobs}/{job-id}/parameters/{parameter-name}, and then described as a "byReference" parameter in the <span class="xmlelement">&lt;job&gt;</span> XML description.</p>
             <p>The JDL may allow parameter values to be uploaded in-line - in this case the UWS should accept the parameter content as multipart/form-data encoded in the POST with the formal value of the parameter being a &quot;byReference&quot; type using the special URI scheme &quot;param&quot; with the path part of the URI matching the name attribute of the multipart/form-data encoding content part. The content of such an in-line parameter should be made available as part of the job resource tree at /{jobs}/{job-id}/parameters/{parameter-name}, and then described as a &quot;byReference&quot; parameter in the <span class="xmlelement">&lt;job&gt;</span> XML description.</p>  
473            </div>            </div>
474            <p>&nbsp;</p>            <p>&nbsp;</p>
475          </div>          </div>
476          <div class="section"><h4><a name="d1e1390" id="d1e1390" shape="rect"/><span class="secnum">2.2.3.2. </span>Deleting a Job</h4>          <div class="section"><h4><a id="d1e1390" shape="rect"><span class="secnum">2.2.3.2. </span>Deleting a Job</a></h4>
477            <p>Sending a HTTP DELETE to a Job            <p>Sending a HTTP DELETE to a Job
478              resource destroys that job, with the meaning noted in the definition              resource destroys that job, with the meaning noted in the definition
479              of the Job object, above. No other resource of the UWS may be              of the Job object, above. No other resource of the UWS may be
# Line 516  Line 485 
485              for a deletion. This action supports web browsers which typically              for a deletion. This action supports web browsers which typically
486              cannot send DELETE requests.</p>              cannot send DELETE requests.</p>
487          </div>          </div>
488          <div class="section"><h4><a name="d1e1402" id="d1e1402" shape="rect"/><span class="secnum">2.2.3.3. </span>Changing the Destruction          <div class="section"><h4><a id="d1e1402" shape="rect"><span class="secnum">2.2.3.3. </span>Changing the Destruction Time</a></h4>
             Time</h4>  
489            <p>The Destruction Time may be changed            <p>The Destruction Time may be changed
490              by POSTing to  /{jobs}/(job-id)/destruction.  In this case, the body              by POSTing to  /{jobs}/(job-id)/destruction.  In this case, the body
491              of the posted request is of type <i>application/x-www-form-urlencoded</i><b> </b><span style="font-weight: medium">and              of the posted request is of type <i>application/x-www-form-urlencoded</i><b> </b><span style="font-weight: medium">and
# Line 530  Line 498 
498              URI so that the client receives the value that the service has              URI so that the client receives the value that the service has
499              actually set the Destruction Time to within the Job summary response. The service may override the requested Destruction Time and substitute a value of its choosing e.g. a job owner may have reached his storage quota and so the service only allows further data to be stored for shorter times than requested.</p>              actually set the Destruction Time to within the Job summary response. The service may override the requested Destruction Time and substitute a value of its choosing e.g. a job owner may have reached his storage quota and so the service only allows further data to be stored for shorter times than requested.</p>
500          </div>          </div>
501          <div class="section"><h4><a name="d1e1420" id="d1e1420" shape="rect"/><span class="secnum">2.2.3.4. </span>Changing the Execution          <div class="section"><h4><a id="d1e1420" shape="rect"><span class="secnum">2.2.3.4. </span>Changing the Execution Duration</a></h4>
             Duration</h4>  
502            <p>The Execution Duration may be changed            <p>The Execution Duration may be changed
503              by POSTing to  /{jobs}/(job-id)/executionduration.  In this case, the body              by POSTing to  /{jobs}/(job-id)/executionduration.  In this case, the body
504              of the posted request is of type <i>application/x-www-form-urlencoded</i><b> </b><span style="font-weight: medium">and              of the posted request is of type <i>application/x-www-form-urlencoded</i><b> </b><span style="font-weight: medium">and
# Line 543  Line 510 
510              /{jobs}/(job-id) so that the client receives the value that the              /{jobs}/(job-id) so that the client receives the value that the
511              service has actually set the Execution Duration to. The service may to override the request and substitute a value of its choosing</p>              service has actually set the Execution Duration to. The service may to override the request and substitute a value of its choosing</p>
512          </div>          </div>
513          <div class="section"><h4><a name="d1e1439" id="d1e1439" shape="rect"/><span class="secnum">2.2.3.5. </span>        Starting a Job</h4>          <div class="section"><h4><a id="d1e1439" shape="rect"><span class="secnum">2.2.3.5. </span>Starting a Job</a></h4>
514            <p style="font-weight: medium">A            <p style="font-weight: medium">A
515              job may be started by POSTing to the /{jobs}/(job-id)/phase URI. The              job may be started by POSTing to the /{jobs}/(job-id)/phase URI. The
516              POST contains a single parameter PHASE=RUN which instructs the UWS to              POST contains a single parameter PHASE=RUN which instructs the UWS to
# Line 555  Line 522 
522              busy the server is, the job might be put almost immediately (and              busy the server is, the job might be put almost immediately (and
523              without client intervention) into an EXECUTING state.</p>              without client intervention) into an EXECUTING state.</p>
524          </div>          </div>
525          <div class="section"><h4><a name="d1e1448" id="d1e1448" shape="rect"/><span class="secnum">2.2.3.6. </span>Aborting a Job</h4>          <div class="section"><h4><a id="d1e1448" shape="rect"><span class="secnum">2.2.3.6. </span>Aborting a Job</a></h4>
526            <p style="font-weight: medium">A            <p style="font-weight: medium">A
527              job may be aborted by POSTing to the /{jobs}/(job-id)/phase URI. The              job may be aborted by POSTing to the /{jobs}/(job-id)/phase URI. The
528              POST contains a single parameter PHASE=ABORT which instructs the UWS              POST contains a single parameter PHASE=ABORT which instructs the UWS
# Line 565  Line 532 
532              phase that the job has been set to.</p>              phase that the job has been set to.</p>
533          </div>          </div>
534        </div>        </div>
535        <div class="section"><h4><a name="d1e708" id="d1e708" shape="rect"/><span class="secnum">2.2.4. </span>Message pattern</h4>        <div class="section"><h4><a id="d1e708" shape="rect"><span class="secnum">2.2.4. </span>Message pattern</a></h4>
536          <p>The REST binding results in the          <p>The REST binding results in the
537            message pattern shown in figure 2.</p>            message pattern shown in figure 2.</p>
538          <p><i>Illustration 2:          <p><i>Illustration 2:
# Line 575  Line 542 
542        </div>        </div>
543      </div>      </div>
544      </div>      </div>
545    <div class="section"><h2><a name="security" id="security" shape="rect"/><span class="secnum">3. </span>Security Considerations (normative)</h2>    <div class="section"><h2><a id="security" shape="rect"><span class="secnum">3. </span>Security Considerations (normative)</a></h2>
546      <p>A UWS should follow IVOA standards for security <cite>      <p>A UWS should follow IVOA standards for security <cite>[<a href="#std:ssoauth">std:ssoauth</a>]</cite> if it is desired that a non-public UWS be created. It is possible to imagine many different authorization policies that might be employed in an authenticated UWS, where particular groups of users have different permissions to create and view different types of jobs. A full discussion of such authorization policies is beyond the scope of this document, but a UWS should behave as described in section <span class="xref"><a href="#RESTbinding">2.2</a></span>
     [<a    href="#std:ssoauth">std:ssoauth</a>]  
     </cite> if it is desired that a non-public UWS be created. It is possible to imagine many different authorization policies that might be employed in an authenticated UWS, where particular groups of users have different permissions to create and view different types of jobs. A full discussion of such authorization policies is beyond the scope of this document, but a UWS should behave as described in section <span    class="xref"><a href="#RESTbinding">2.2. </a></span>  
547      for any individual authenticated user, although it is clear that a user without sufficient privileges might only obtain a restricted list of jobs within the joblist at /{jobs}. Any attempt to retrieve a job for which the user does not have sufficient privilege should result in a 403 Forbidden HTTP status being returned.</p>      for any individual authenticated user, although it is clear that a user without sufficient privileges might only obtain a restricted list of jobs within the joblist at /{jobs}. Any attempt to retrieve a job for which the user does not have sufficient privilege should result in a 403 Forbidden HTTP status being returned.</p>
548      <p>When an authentication mechanism is used in the UWS then the implementation should set the owner object to the identity obtained by the authentication. </p>      <p>When an authentication mechanism is used in the UWS then the implementation should set the owner object to the identity obtained by the authentication. </p>
549    </div>    </div>
550    <div class="section"><h2><a name="ApplicationsOfUWS" id="ApplicationsOfUWS" shape="rect"/><span class="secnum">4. </span> Applications of UWS (informative)</h2>    <div class="section"><h2><a id="ApplicationsOfUWS" shape="rect"><span class="secnum">4. </span>Applications of UWS (informative)</a></h2>
551      <p>The UWS pattern leaves undefined two      <p>The UWS pattern leaves undefined two
552        essential parts of the service contract: the content that must be        essential parts of the service contract: the content that must be
553        posted to create a job; and the pattern of results made available by        posted to create a job; and the pattern of results made available by
# Line 597  Line 562 
562        into a full IVOA standard by formalizing the description, adding        into a full IVOA standard by formalizing the description, adding
563        detail and generally making the specification more        detail and generally making the specification more
564        exact and complete.</p>        exact and complete.</p>
565      <div class="section"><h3><a name="Imageservice" id="Imageservice" shape="rect"/><span class="secnum">4.1. </span> Image service with data staging</h3>      <div class="section"><h3><a id="Imageservice" shape="rect"><span class="secnum">4.1. </span>Image service with data staging</a></h3>
566        <p>Consider a service that computes        <p>Consider a service that computes
567          images from archive data. The computation takes significant time, so          images from archive data. The computation takes significant time, so
568          the service is asynchronous. The service keeps the computed images in          the service is asynchronous. The service keeps the computed images in
569          its own storage until the user downloads them; this is essentially          its own storage until the user downloads them; this is essentially
570          the model of SIAP <cite>          the model of SIAP <cite>[<a href="#std:siap">std:siap</a>]</cite>.</p>
     [<a    href="#std:siap">std:siap</a>]  
     </cite>.</p>  
571        <p>The asynchronous image-service is a        <p>The asynchronous image-service is a
572          logical extension of a synchronous SIA service. Therefore it uses the          logical extension of a synchronous SIA service. Therefore it uses the
573          REST binding of UWS.</p>          REST binding of UWS.</p>
# Line 643  Line 606 
606          destroying the job. However, destroying the job deletes the cached          destroying the job. However, destroying the job deletes the cached
607          images so the client has to download them <i>first</i>.</p>          images so the client has to download them <i>first</i>.</p>
608      </div>      </div>
609      <div class="section"><h3><a name="ADQLservice" id="ADQLservice" shape="rect"/><span class="secnum">4.2. </span> ADQL service with cursor</h3>      <div class="section"><h3><a id="ADQLservice" shape="rect"><span class="secnum">4.2. </span>ADQL service with cursor</a></h3>
610        <p>ADQL [1] can serve as a JDL. Consider        <p>ADQL [1] can serve as a JDL. Consider
611          an ADQL service that supports long-running queries as asynchronous          an ADQL service that supports long-running queries as asynchronous
612          operations. In general, the results of the query may be a large set          operations. In general, the results of the query may be a large set
# Line 677  Line 640 
640          parameterised by the query parameters FIRST and LAST in the query          parameterised by the query parameters FIRST and LAST in the query
641          string of its URI: these parameters state the index of the first and          string of its URI: these parameters state the index of the first and
642          last row to be returned; e.g.</p>          last row to be returned; e.g.</p>
643        <p> http://whatever.org/adlqService/results/cursor?FIRST=1&amp;LAST=100</p>        <p> http://whatever.org/adlqService/results/cursor?FIRST=1&amp;amp;amp;amp;amp;amp;amp;amp;LAST=100</p>
644        <p>If the parameters are missing, the        <p>If the parameters are missing, the
645          service decides which rows to return.</p>          service decides which rows to return.</p>
646      </div>      </div>
647      <div class="section"><h3><a name="ParameterizedApplications" id="ParameterizedApplications" shape="rect"/><span class="secnum">4.3. </span> Parameterised applications</h3>      <div class="section"><h3><a id="ParameterizedApplications" shape="rect"><span class="secnum">4.3. </span>Parameterised applications</a></h3>
648        <p>There is a class of applications on        <p>There is a class of applications on
649          which a job may be defined by a list of simple parameters. &#8220;Simple&#8221;          which a job may be defined by a list of simple parameters. &#8220;Simple&#8221;
650          here means unstructured: a scalar value such as a number, a string of          here means unstructured: a scalar value such as a number, a string of
# Line 696  Line 659 
659          one service contract will work for all the applications and a single          one service contract will work for all the applications and a single
660          implementation of the contract can be reused for all cases.</p>          implementation of the contract can be reused for all cases.</p>
661        <p>AstroGrid&#8217;s Common Execution        <p>AstroGrid&#8217;s Common Execution
662          Architecture (CEA) <cite>          Architecture (CEA) <cite>[<a href="#harrison05">harrison05</a>]</cite> works in this way. It has just one service
     [<a    href="#harrison05">harrison05</a>]  
     </cite> works in this way. It has just one service  
663          contract for all applications (including ADQL services; the ADQL          contract for all applications (including ADQL services; the ADQL
664          query is passed in the list of parameters). It has four          query is passed in the list of parameters). It has four
665          implementations, one for each of the possible interfaces between the          implementations, one for each of the possible interfaces between the
# Line 717  Line 678 
678          accept code from the client for local execution.</p>          accept code from the client for local execution.</p>
679        <p>The JDL in CEA v2 is similar to that        <p>The JDL in CEA v2 is similar to that
680          in CEA v1 It is a formal, XML vocabulary for expressing choice          in CEA v1 It is a formal, XML vocabulary for expressing choice
681          of application and parameter lists <cite>          of application and parameter lists <cite>[<a href="#std:vocea">std:vocea</a>]</cite>. Parameters may be inputs or
     [<a    href="#std:vocea">std:vocea</a>]  
     </cite>. Parameters may be inputs or  
682          outputs of the job.</p>          outputs of the job.</p>
683        <p>To start a job, a document in this        <p>To start a job, a document in this
684          JDL is posted to the UWS. The document is sent in its native          JDL is posted to the UWS. The document is sent in its native
685          MIME-type, application/xml, so this is not an interface that can be          MIME-type, application/xml, so this is not an interface that can be
686          driven directly from an HTML form, although it can be driven from the          driven directly from an HTML form, although it can be driven from the
687          emerging XForms technology<cite>          emerging XForms technology<cite>[<a href="#std:xform">std:xform</a>]</cite>.</p>
     [<a    href="#std:xform">std:xform</a>]  
     </cite>.</p>  
688        <p>The results of the job depend on the        <p>The results of the job depend on the
689          choice of application. They are all  results whose identifiers and          choice of application. They are all  results whose identifiers and
690          types are defined in the definition of the application. That          types are defined in the definition of the application. That
# Line 749  Line 706 
706          the URI.</p>          the URI.</p>
707      </div>      </div>
708    </div>    </div>
709    <div class="section"><h2><a name="SynchronousService" id="SynchronousService" shape="rect"/><span class="secnum">5. </span> Implementing a Synchronous Service on top of UWS (informative)</h2>    <div class="section"><h2><a id="SynchronousService" shape="rect"><span class="secnum">5. </span>Implementing a Synchronous Service on top of UWS (informative)</a></h2>
710      <p>Whilst the provision of synchronous      <p>Whilst the provision of synchronous
711        services is not one of the design aims of the UWS pattern, there is        services is not one of the design aims of the UWS pattern, there is
712        clearly a desire in second generation IVOA services  still to allow a        clearly a desire in second generation IVOA services  still to allow a
# Line 797  Line 754 
754    
755  <div class="appendices"><h2><a name="Appendices" id="Appendices" shape="rect"/>Appendices</h2>  <div class="appendices"><h2><a name="Appendices" id="Appendices" shape="rect"/>Appendices</h2>
756    
757  <div class="section"><h2><a name="Updates" id="Updates" shape="rect"/><span class="secnum">Appendix A. </span> Updates from previous versions</h2>  <div class="section"><h2><a id="Updates" shape="rect"><span class="secnum">A. </span>Updates from previous versions</a></h2>
758    <div class="section"><h3><a name="d1e1112" id="d1e1112" shape="rect"/><span class="secnum">Appendix A.1. </span>At Version 0.5</h3>    <div class="section"><h3><a id="d1e1112" shape="rect"><span class="secnum">A.1. </span>At Version 0.5</a></h3>
759      <ul><li>      <ul><li>
760          <p>changed the POST parameter names          <p>changed the POST parameter names
761            to be the same as the resource paths.</p>            to be the same as the resource paths.</p>
# Line 808  Line 765 
765            <p>updated SOAP binding section</p>            <p>updated SOAP binding section</p>
766          </li></ul>          </li></ul>
767    </div>    </div>
768    <div class="section"><h3><a name="d1e1775" id="d1e1775" shape="rect"/><span class="secnum">Appendix A.2. </span>At Version 1.0</h3>    <div class="section"><h3><a id="d1e1775" shape="rect"><span class="secnum">A.2. </span>At Version 1.0</a></h3>
769    <ul><li>Removed all SOAP binding - deferred to later version.</li><li>Added parameterList</li><li>Added ownerId and jobId as subsidiary job object</li></ul>    <ul><li>Removed all SOAP binding - deferred to later version.</li><li>Added parameterList</li><li>Added ownerId and jobId as subsidiary job object</li></ul>
770    </div>    </div>
771    <div class="section"><h3><a  id="ver11" shape="rect"/><span class="secnum">Appendix A.3. </span>At Version 1.1</h3>    <div class="section"><h3><a id="ver11" shape="rect"><span class="secnum">A.3. </span>At Version 1.1</a></h3>
772    <ul><li>Allowed content in the  result element.</li><li>A</li></ul>    <ul><li>Allowed content in the  result element.</li><li>A</li></ul>
773    </div>    </div>
774  </div>  </div>
775    
776  <div class="section"><h2><a name="UWSSchema" id="UWSSchema" shape="rect"/><span class="secnum">Appendix B. </span> UWS Schema</h2>  <div class="section"><h2><a id="UWSSchema" shape="rect"><span class="secnum">B. </span>UWS Schema</a></h2>
777    <p>Note that this schema can be found on-line at <a href="http://www.ivoa.net/xml/UWS/v1.0" shape="rect">http://www.ivoa.net/xml/UWS/v1.0</a> (i.e. the target namespace    <p>Note that this schema can be found on-line at <a href="http://www.ivoa.net/xml/UWS/v1.0" shape="rect">http://www.ivoa.net/xml/UWS/v1.0</a> (i.e. the target namespace
778  can also be used as a URL for the schema.) This location should  can also be used as a URL for the schema.) This location should
779  represent the definitive source, the schema is reproduced below only for  represent the definitive source, the schema is reproduced below only for
780  completeness of this document.</p>  completeness of this document.</p>
781    <div><?incxml href="../UWS.xsd"?><div    class="viewxml"><div class="comment">&lt;!-- $Revision$ $Date$  $HeadURL$ --&gt;</div><div class="comment">&lt;!-- UWS schema - Paul Harrison May 2008 --&gt;</div><div class="comment">&lt;!--    <div><!--The contents of this div are automatically generated from the following processing instruction when processed with ivoarestructure.xsl-->
782        <?incxml href="../UWS.xsd"?><h:div xmlns:h="http://www.w3.org/1999/xhtml" class="viewxml"><div class="comment">&lt;!-- $Revision$ $Date$  $HeadURL$ --&gt;</div><div class="comment">&lt;!-- UWS schema - Paul Harrison May 2008 --&gt;</div><div class="comment">&lt;!--
783        $Log: UWS.xsd,v $        $Log: UWS.xsd,v $
784          Revision 1.2  2011/09/01 14:03:58  pah
785          result of merge of contracts_pah_2931 branch
786    
787        Revision 1.1.2.2  2011/04/08 10:30:48  pah        Revision 1.1.2.2  2011/04/08 10:30:48  pah
788        use local import        use local import
789    
# Line 837  Line 798 
798   Revision 1.6 2008/10/01 11:54:02 pah fix up cvs   Revision 1.6 2008/10/01 11:54:02 pah fix up cvs
799        header Revision 1.5 2008/09/25 00:22:35 pah change termination        header Revision 1.5 2008/09/25 00:22:35 pah change termination
800        time to execution duration        time to execution duration
801     --&gt;</div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:schema</span> <span class="attribute-name">targetNamespace</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/UWS/v1.0"</span> <span class="attribute-name">elementFormDefault</span><span class="markup">=</span><span class="attribute-value">"qualified"</span> <span class="attribute-name">attributeFormDefault</span><span class="markup">=</span><span class="attribute-value">"unqualified"</span> <span class="attribute-name">xmlns:xml</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/XML/1998/namespace"</span> <span class="attribute-name">xmlns:xs</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/2001/XMLSchema"</span> <span class="attribute-name">xmlns:uws</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/UWS/v1.0"</span> <span class="attribute-name">xmlns:xlink</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/1999/xlink"</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:import</span> <span class="attribute-name">namespace</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/1999/xlink"</span> <span class="attribute-name">schemaLocation</span><span class="markup">=</span><span class="attribute-value">"../../../stc/STC/v1.30/XLINK.xsd"</span><span class="markup">/&gt;</span></div><div class="comment">&lt;!--      &lt;xs:import namespace="http://www.w3.org/1999/xlink"     --&gt;</div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:schema</span> <span class="attribute-name">targetNamespace</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/UWS/v1.1"</span> <span class="attribute-name">elementFormDefault</span><span class="markup">=</span><span class="attribute-value">"qualified"</span> <span class="attribute-name">attributeFormDefault</span><span class="markup">=</span><span class="attribute-value">"unqualified"</span> <span class="attribute-name">xmlns:xml</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/XML/1998/namespace"</span> <span class="attribute-name">xmlns:xs</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/2001/XMLSchema"</span> <span class="attribute-name">xmlns:uws</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/UWS/v1.1"</span> <span class="attribute-name">xmlns:xlink</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/1999/xlink"</span><span class="markup">&gt;</span><div class="indent"><div class="comment">&lt;!--
802        schemaLocation="http://www.ivoa.net/xml/Xlink/xlink.xsd"/&gt;     &lt;xs:import namespace="http://www.w3.org/1999/xlink"
803  --&gt;</div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ShortJobDescription"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"phase"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ExecutionPhase"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> the execution phase - returned at        schemaLocation="../../../stc/STC/v1.30/XLINK.xsd" /&gt;
804                    /(jobs)/(jobid)/phase</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"id"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:JobIdentifier"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">/&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:attributeGroup</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"uws:reference"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attributeGroup</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"reference"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">standard xlink references   --&gt;</div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:import</span> <span class="attribute-name">namespace</span><span class="markup">=</span><span class="attribute-value">"http://www.w3.org/1999/xlink"</span> <span class="attribute-name">schemaLocation</span><span class="markup">=</span><span class="attribute-value">"http://www.ivoa.net/xml/Xlink/xlink.xsd"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ShortJobDescription"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"phase"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ExecutionPhase"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> the execution phase - returned at
805           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"xlink:type"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"optional"</span> <span class="attribute-name">default</span><span class="markup">=</span><span class="attribute-value">"simple"</span><span class="markup">/&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"xlink:href"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"optional"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:attributeGroup</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:simpleType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ExecutionPhase"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> Enumeration of possible phases of job                    /(jobs)/(jobid)/phase</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"id"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:JobIdentifier"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attributeGroup</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"uws:reference"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attributeGroup</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"reference"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">standard xlink references
806              execution</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:restriction</span> <span class="attribute-name">base</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"PENDING"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The first phase a job is entered into           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"xlink:type"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"optional"</span> <span class="attribute-name">default</span><span class="markup">=</span><span class="attribute-value">"simple"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"xlink:href"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"optional"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:attributeGroup</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:simpleType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ExecutionPhase"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> Enumeration of possible phases of job
807                execution</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:restriction</span> <span class="attribute-name">base</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"PENDING"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The first phase a job is entered into
808                    - this is where a job is being set up but no request                    - this is where a job is being set up but no request
809                    to run has occurred.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"QUEUED"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> An job has been accepted for execution                    to run has occurred.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"QUEUED"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> An job has been accepted for execution
810                    but is waiting in a queue</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"EXECUTING"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">An job is running</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"COMPLETED"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> An job has completed successfully                    but is waiting in a queue</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"EXECUTING"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">An job is running</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"COMPLETED"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> An job has completed successfully
811                 </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"ERROR"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> Some form of error has occurred                 </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"ERROR"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> Some form of error has occurred
812                 </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"UNKNOWN"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The job is in an unknown state.                 </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"UNKNOWN"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The job is in an unknown state.
813                 </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"HELD"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The job is HELD pending execution and                 </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"HELD"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The job is HELD pending execution and
814                    will not automatically be executed - can occur after a PHASE=RUN request has been made (cf PENDING).                    will not automatically be executed - can occur after a PHASE=RUN request has been made (cf PENDING).
815                 </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"SUSPENDED"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The job has been suspended by the                 </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"SUSPENDED"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The job has been suspended by the
816                    system during execution</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"ABORTED"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The job has been aborted, either by                    system during execution</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"ABORTED"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The job has been aborted, either by
817                    user request or by the server because of lack or                    user request or by the server because of lack or
818                    overuse of resources.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:restriction</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:simpleType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"JobSummary"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The complete representation of the state                    overuse of resources.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:enumeration</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:restriction</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:simpleType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"JobSummary"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The complete representation of the state
819              of a job</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"jobId"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:JobIdentifier"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"runId"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> this is a client supplied identifier -              of a job</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"jobId"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:JobIdentifier"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"runId"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> this is a client supplied identifier -
820                    the UWS system does nothing other than to return it as                    the UWS system does nothing other than to return it as
821                    part of the description of the job</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ownerId"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">the owner (creator) of the job -                    part of the description of the job</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ownerId"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">the owner (creator) of the job -
822                    this should be expressed as a string that can be                    this should be expressed as a string that can be
823                    parsed in accordance with IVOA security standards. If                    parsed in accordance with IVOA security standards. If
824                    there was no authenticated job creator then this                    there was no authenticated job creator then this
825                    should be set to NULL.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"phase"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ExecutionPhase"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> the execution phase - returned at                    should be set to NULL.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"phase"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ExecutionPhase"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> the execution phase - returned at
826                    /(jobs)/(jobid)/phase</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"quote"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:dateTime"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> A Quote predicts when the job is likely to complete - returned at /(jobs)/(jobid)/quote                    /(jobs)/(jobid)/phase</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"quote"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:dateTime"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> A Quote predicts when the job is likely to complete - returned at /(jobs)/(jobid)/quote
827                    "don't know" is encoded by setting to the XML null value xsi:nil="true"</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"startTime"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:dateTime"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The instant at which the job started execution.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"endTime"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:dateTime"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The instant at which the job finished execution</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"executionDuration"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:int"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"false"</span><span class="markup">&gt;</span><div class="comment">&lt;!-- TODO look if xs:duration here has any benefits --&gt;</div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The duration (in seconds) for which                    "don't know" is encoded by setting to the XML null value xsi:nil="true"</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"startTime"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:dateTime"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The instant at which the job started execution.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"endTime"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:dateTime"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The instant at which the job finished execution</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"executionDuration"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:int"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"false"</span><span class="markup">&gt;</span><div class="indent"><div class="comment">&lt;!-- TODO look if xs:duration here has any benefits --&gt;</div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The duration (in seconds) for which
828                    the job should be allowed to run - a value of 0 is                    the job should be allowed to run - a value of 0 is
829                    intended to mean unlimited - returned at                    intended to mean unlimited - returned at
830                    /(jobs)/(jobid)/executionduration</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"destruction"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:dateTime"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The time at which the whole job +                    /(jobs)/(jobid)/executionduration</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"destruction"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:dateTime"</span> <span class="attribute-name">nillable</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The time at which the whole job +
831                    records + results will be destroyed. returned at                    records + results will be destroyed. returned at
832                    /(jobs)/(jobid)/destruction</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"uws:parameters"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The parameters to the job (where appropriate)                    /(jobs)/(jobid)/destruction</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"uws:parameters"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The parameters to the job (where appropriate)
833  can also be retrieved at /(jobs)/(jobid)/parameters</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"uws:results"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The results for the job - can also be retrieved at /(jobs)/(jobid)/results</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"errorSummary"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ErrorSummary"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><span class="text">  can also be retrieved at /(jobs)/(jobid)/parameters</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"uws:results"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">The results for the job - can also be retrieved at /(jobs)/(jobid)/results</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"errorSummary"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ErrorSummary"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><span class="text">
834           </span><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"jobInfo"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> This is arbitrary information that can           </span><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"jobInfo"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"1"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> This is arbitrary information that can
835                    be added to the job description by the UWS                    be added to the job description by the UWS
836                    implementation.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:any</span> <span class="attribute-name">namespace</span><span class="markup">=</span><span class="attribute-value">"##any"</span> <span class="attribute-name">processContents</span><span class="markup">=</span><span class="attribute-value">"lax"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"unbounded"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:simpleType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"JobIdentifier"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The identifier for the job                    implementation.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:any</span> <span class="attribute-name">namespace</span><span class="markup">=</span><span class="attribute-value">"##any"</span> <span class="attribute-name">processContents</span><span class="markup">=</span><span class="attribute-value">"lax"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"unbounded"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:simpleType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"JobIdentifier"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The identifier for the job
837           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:restriction</span> <span class="attribute-name">base</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:simpleType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"job"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:JobSummary"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> This is the information that is returned           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:restriction</span> <span class="attribute-name">base</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:simpleType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"job"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:JobSummary"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> This is the information that is returned
838              when a GET is made for a single job resource - i.e.              when a GET is made for a single job resource - i.e.
839              /(jobs)/(jobid)</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"jobs"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The list of job references returned at              /(jobs)/(jobid)</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"jobs"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The list of job references returned at
840              /(jobs)</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> ISSUE - do we want to have any sort of              /(jobs)</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> ISSUE - do we want to have any sort of
841                 paging or selection mechanism in case the job list gets                 paging or selection mechanism in case the job list gets
842                 very large? Or is that an unnecessary complication...                 very large? Or is that an unnecessary complication...
843              </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"jobref"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ShortJobDescription"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"unbounded"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ResultReference"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> A reference to a UWS result              </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"jobref"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ShortJobDescription"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"unbounded"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ResultReference"</span> <span class="attribute-name">mixed</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> A reference to a UWS result
844           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"id"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">/&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:attributeGroup</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"uws:reference"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"results"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The element returned for           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"id"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attributeGroup</span> <span class="attribute-name">ref</span><span class="markup">=</span><span class="attribute-value">"uws:reference"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"results"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> The element returned for
845              /(jobs)/(jobid)/results</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"result"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ResultReference"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"unbounded"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ErrorSummary"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">              /(jobs)/(jobid)/results</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"result"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ResultReference"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"unbounded"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ErrorSummary"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">
846              A short summary of an error - a fuller representation of the              A short summary of an error - a fuller representation of the
847              error may be retrieved from /(jobs)/(jobid)/error              error may be retrieved from /(jobs)/(jobid)/error
848           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"message"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"type"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ErrorType"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"message"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"type"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:ErrorType"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">
849                 characterization of the type of the error                 characterization of the type of the error
850              </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:attribute</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"hasDetail"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:boolean"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">if true then there is a more detailed error message available at /(jobs)/(jobid)/error</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:attribute</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:simpleType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ErrorType"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:restriction</span> <span class="attribute-name">base</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"transient"</span><span class="markup">/&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"fatal"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:restriction</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:simpleType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"Parameter"</span> <span class="attribute-name">mixed</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> the list of input parameters to the job - if              </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:attribute</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"hasDetail"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:boolean"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text">if true then there is a more detailed error message available at /(jobs)/(jobid)/error</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:attribute</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:simpleType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"ErrorType"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:restriction</span> <span class="attribute-name">base</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"transient"</span><span class="markup">/&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:enumeration</span> <span class="attribute-name">value</span><span class="markup">=</span><span class="attribute-value">"fatal"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:restriction</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:simpleType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"Parameter"</span> <span class="attribute-name">mixed</span><span class="markup">=</span><span class="attribute-value">"true"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> the list of input parameters to the job - if
851              the job description language does not naturally have              the job description language does not naturally have
852              parameters, then this list should contain one element which              parameters, then this list should contain one element which
853              is the content of the original POST that created the job.              is the content of the original POST that created the job.
854           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"byReference"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:boolean"</span> <span class="attribute-name">default</span><span class="markup">=</span><span class="attribute-value">"false"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> if this attribute is true then the           </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"byReference"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:boolean"</span> <span class="attribute-name">default</span><span class="markup">=</span><span class="attribute-value">"false"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> if this attribute is true then the
855                 content of the parameter represents a URL to retrieve the                 content of the parameter represents a URL to retrieve the
856                 actual parameter value.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> It is up to the implementation to decide                 actual parameter value.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> It is up to the implementation to decide
857                 if a parameter value cannot be returned directly as the                 if a parameter value cannot be returned directly as the
858                 content - the basic rule is that the representation of                 content - the basic rule is that the representation of
859                 the parameter must allow the whole job element to be                 the parameter must allow the whole job element to be
860                 valid XML. If this cannot be achieved then the parameter                 valid XML. If this cannot be achieved then the parameter
861                 value must be returned by reference.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:attribute</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"id"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> the identifier for the parameter                 value must be returned by reference.</span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:attribute</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"id"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:string"</span> <span class="attribute-name">use</span><span class="markup">=</span><span class="attribute-value">"required"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:annotation</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:documentation</span><span class="markup">&gt;</span><span class="text"> the identifier for the parameter
862              </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:attribute</span><span class="markup">&gt;</span></div><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"isPost"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:boolean"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"parameters"</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span><span class="markup">&gt;</span><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"parameter"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:Parameter"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"unbounded"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">/&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div><span class="markup">&lt;/</span><span class="end-tag">xs:schema</span><span class="markup">&gt;</span></div><div class="comment">&lt;!-- --&gt;</div></div></div>              </span><span class="markup">&lt;/</span><span class="end-tag">xs:documentation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:annotation</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:attribute</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:attribute</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"isPost"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"xs:boolean"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"parameters"</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:complexType</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:sequence</span><span class="markup">&gt;</span><div class="indent"><div class="element"><span class="markup">&lt;</span><span class="start-tag">xs:element</span> <span class="attribute-name">name</span><span class="markup">=</span><span class="attribute-value">"parameter"</span> <span class="attribute-name">type</span><span class="markup">=</span><span class="attribute-value">"uws:Parameter"</span> <span class="attribute-name">maxOccurs</span><span class="markup">=</span><span class="attribute-value">"unbounded"</span> <span class="attribute-name">minOccurs</span><span class="markup">=</span><span class="attribute-value">"0"</span><span class="markup">/&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:sequence</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:complexType</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:element</span><span class="markup">&gt;</span></div></div><span class="markup">&lt;/</span><span class="end-tag">xs:schema</span><span class="markup">&gt;</span></div><div class="comment">&lt;!-- --&gt;</div></h:div>
863        <!--end of autogenerated content--></div>
864        
865        
866        
867        
868        
869        
870        
871  </div>  </div>
872  </div>  </div>
873  <div class="section-nonum'"><h2><a name="References" id="References" shape="rect"/>References</h2>  <div class="section-nonum'"><h2><a name="References" id="References" shape="rect"/>References</h2>
874   <div>   <div>
875   <?bibliography ivoadoc/refs.bib ?>  <!--   <?bibliography ivoadoc/refs.bib ?> -->
876    
877    
878  <dl><dt><a name="std:rfc2119" id="std:rfc2119" shape="rect">[std:rfc2119] Bradner, S. </a></dt><dd>  <dl><dt><a name="std:rfc2119" id="std:rfc2119" shape="rect">[std:rfc2119] Bradner, S. </a></dt><dd>
# Line 916  Line 886 
886  </dd><dt><a name="std:vospace" id="std:vospace" shape="rect">[std:vospace] Matthew Graham, Dave Morris, and Guy  </dd><dt><a name="std:vospace" id="std:vospace" shape="rect">[std:vospace] Matthew Graham, Dave Morris, and Guy
887      Rixon.</a></dt><dd> <a href="http://www.ivoa.net/Documents/VOSpace/" shape="rect">Vospace specification</a>.      Rixon.</a></dt><dd> <a href="http://www.ivoa.net/Documents/VOSpace/" shape="rect">Vospace specification</a>.
888      {IVOA Recommendation}, 2009. </dd><dt><a name="std:tap" id="std:tap" shape="rect">[std:tap] Patrick Dowler, Guy Rixon, Doug Tody.</a></dt><dd> <a href="http://www.ivoa.net/Documents/VOSpace/" shape="rect">Table Access Protocol</a>.      {IVOA Recommendation}, 2009. </dd><dt><a name="std:tap" id="std:tap" shape="rect">[std:tap] Patrick Dowler, Guy Rixon, Doug Tody.</a></dt><dd> <a href="http://www.ivoa.net/Documents/VOSpace/" shape="rect">Table Access Protocol</a>.
889      {IVOA Recommendation}, 2010. </dd><dt> </dt><dt><a name="fielding00" id="fielding00" shape="rect">[fielding00] Roy Thomas Fielding.</a></dt><dd>      {IVOA Recommendation}, 2010. </dd><dt>&nbsp;</dt><dt><a name="fielding00" id="fielding00" shape="rect">[fielding00] Roy Thomas Fielding.</a></dt><dd>
890    <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm" shape="rect"><em>Architectural Styles and the Design of Network-based Software    <a href="http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm" shape="rect"><em>Architectural Styles and the Design of Network-based Software
891    Architectures</em></a>.    Architectures</em></a>.
892    PhD thesis, University of California, Irvine, 2000.    PhD thesis, University of California, Irvine, 2000.

Legend:
Removed from v.1681  
changed lines
  Added in v.1682

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