<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by gradle vo-dml tools 2026-04-21T17:47:37.085341+01:00-->
<xsd:schema xmlns:execution="http://ivoa.net/dm/execution/v0.1"
            xmlns:ivoa="http://ivoa.net/vodml/ivoa"
            xmlns:pdl="http://ivoa.net/dm/pdl/v0.1"
            xmlns:tool="http://ivoa.net/dm/tool/v0.1"
            xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            vc:minVersion="1.1"
            targetNamespace="http://ivoa.net/dm/execution/v0.1"
            elementFormDefault="unqualified"
            attributeFormDefault="unqualified">
   <xsd:import namespace="http://ivoa.net/vodml/ivoa"
               schemaLocation="IVOA-v1.0.vo-dml.xsd"/>
   <xsd:import namespace="http://ivoa.net/dm/tool/v0.1"
               schemaLocation="ToolDM-v1.vo-dml.xsd"/>
   <xsd:import namespace="http://ivoa.net/dm/pdl/v0.1"
               schemaLocation="ParameterDM-v1.vo-dml.xsd"/>
   <xsd:element name="executionModel">
      <xsd:complexType>
         <xsd:sequence>
            <xsd:element name="refs" minOccurs="0">
               <xsd:complexType>
                  <xsd:sequence>
                     <xsd:element name="physicalLocation"
                                  type="execution:PhysicalLocation"
                                  minOccurs="0"
                                  maxOccurs="unbounded"/>
                     <xsd:element name="tool"
                                  type="tool:Tool"
                                  minOccurs="0"
                                  maxOccurs="unbounded"/>
                     <xsd:element name="executionNode"
                                  type="execution:ExecutionNode"
                                  minOccurs="0"
                                  maxOccurs="unbounded"/>
                     <xsd:element name="author"
                                  type="tool:Author"
                                  minOccurs="0"
                                  maxOccurs="unbounded"/>
                     <xsd:element name="oCIRegistry"
                                  type="tool:OCIRegistry"
                                  minOccurs="0"
                                  maxOccurs="unbounded"/>
                     <xsd:element name="toolImage"
                                  type="tool:ToolImage"
                                  minOccurs="0"
                                  maxOccurs="unbounded"/>
                  </xsd:sequence>
               </xsd:complexType>
            </xsd:element>
            <xsd:choice minOccurs="0" maxOccurs="unbounded">
               <xsd:element name="dataNode" type="execution:DataNode"/>
               <xsd:element name="dataResource" type="execution:DataResource"/>
               <xsd:element name="workLoad" type="execution:WorkLoad"/>
               <xsd:element name="jobExecution" type="execution:JobExecution"/>
            </xsd:choice>
         </xsd:sequence>
      </xsd:complexType>
   </xsd:element>
   <xsd:complexType name="PhysicalLocation">
      <xsd:annotation>
         <xsd:documentation>The physical location of a resource</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:PhysicalLocation</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>A human readable name for the location</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:PhysicalLocation.name</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="country" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>Country name</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:PhysicalLocation.country</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="longitude" type="xsd:float" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>Longitude in degrees</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:PhysicalLocation.longitude</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="latitude" type="xsd:float" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>Latitude in degrees</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:PhysicalLocation.latitude</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="_id" type="xsd:ID"/>
   </xsd:complexType>
   <xsd:complexType name="ExecutionNode">
      <xsd:annotation>
         <xsd:documentation>A Node where tool execution can take place</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:ExecutionNode</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="resourcesServiceUrl"
                      type="xsd:anyURI"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the </xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionNode.resourcesServiceUrl</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="executionServiceUrl"
                      type="xsd:anyURI"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation/>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionNode.executionServiceUrl</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <!--this is a reference-->
         <xsd:element name="location" type="xsd:IDREF" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the location of the node</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionNode.location</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="dataTransferPerformance"
                      type="execution:TransferPerformance"
                      minOccurs="0"
                      maxOccurs="1"/>
         <xsd:element name="computeResources">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="computeResource"
                               type="execution:ComputeResource"
                               minOccurs="1"
                               maxOccurs="unbounded"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:sequence>
      <xsd:attribute name="_id" type="xsd:ID"/>
   </xsd:complexType>
   <xsd:complexType name="ComputeResource">
      <xsd:annotation>
         <xsd:documentation>A computational resource that can be used for executing a job</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:ComputeResource</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the name of the compute resource</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ComputeResource.name</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="numberOfCores" type="xsd:int" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the number of CPU cores available</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ComputeResource.numberOfCores</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="memory" type="xsd:float" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the amount of RAM available in GB</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ComputeResource.memory</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="gpu" type="xsd:boolean" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>whether the resource has GPU capabilities</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ComputeResource.gpu</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="gpuType" type="xsd:string" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the type of GPU available, if any</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ComputeResource.gpuType</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="TransferPerformance">
      <xsd:annotation>
         <xsd:documentation>Performance of data transfer to/from a node</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:TransferPerformance</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence><!--this is a reference-->
         <xsd:element name="fromLocation"
                      type="xsd:IDREF"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the source location of the data transfer</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:TransferPerformance.fromLocation</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="throughput" type="xsd:float" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the throughput of the data transfer in bytes/second</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:TransferPerformance.throughput</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="latency" type="xsd:float" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the latency of the data transfer in seconds</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:TransferPerformance.latency</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="errorRate" type="xsd:float" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the error rate of the data transfer as a percentage</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:TransferPerformance.errorRate</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="timestamp"
                      type="xsd:dateTime"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the timestamp of the performance measurement</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:TransferPerformance.timestamp</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="DataNode">
      <xsd:annotation>
         <xsd:documentation>A Node where data can be stored</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:DataNode</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="storageServiceUrl"
                      type="xsd:anyURI"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the URL of the storage service</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:DataNode.storageServiceUrl</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <!--this is a reference-->
         <xsd:element name="location" type="xsd:IDREF" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the location of the node</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:DataNode.location</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="DataResource">
      <xsd:annotation>
         <xsd:documentation>A data resource that can be used as input or output for a job</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:DataResource</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence><!--this is a reference-->
         <xsd:element name="location" type="xsd:IDREF" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the location of the data</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:DataResource.location</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="size" type="xsd:float" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the size of the data resource in GB</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:DataResource.size</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="mimeType" type="xsd:string" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the mime type of the data resource</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:DataResource.mimeType</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="accessUrl" type="xsd:anyURI" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the URL that can be used to access the data resource</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:DataResource.accessUrl</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="WorkLoad">
      <xsd:annotation>
         <xsd:documentation>the execution workload</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:WorkLoad</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
   </xsd:complexType>
   <xsd:complexType name="ParameterValue">
      <xsd:annotation>
         <xsd:documentation>the value of a parameter for a job execution</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:ParameterValue</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence><!--this is a reference-->
         <xsd:element name="definition" type="xsd:IDREF" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the definition of the parameter</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ParameterValue.definition</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the value of the parameter - this is intentionally very flexible to allow for different types of parameters - e.g. atomic values, files, etc</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ParameterValue.value</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="isIndirect"
                      type="xsd:boolean"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>whether the value is an indirect reference to the actual value - e.g. a file path or a URL</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ParameterValue.isIndirect</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="JobExecution">
      <xsd:annotation>
         <xsd:documentation>the execution of a job on a computational resource</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:JobExecution</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:sequence>
         <xsd:element name="id" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>Unique job execution identifier</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.id</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="runId" type="xsd:string" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>this is a client supplied identifier - the system
                                       does nothing other than to return it as part of the
                                       description of the job</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.runId</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="ownerID" type="xsd:string" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the identifier of the user who owns the job execution</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.ownerID</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <!--this is a reference-->
         <xsd:element name="tool" type="xsd:IDREF" minOccurs="1" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the tool being executed</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.tool</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="inputs">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="parameterValue"
                               type="execution:ParameterValue"
                               minOccurs="0"
                               maxOccurs="unbounded"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         <xsd:element name="outputs">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="parameterValue"
                               type="execution:ParameterValue"
                               minOccurs="0"
                               maxOccurs="unbounded"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
         <xsd:element name="status"
                      type="execution:ExecutionPhase"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the current status of the job execution</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.status</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <!--this is a reference-->
         <xsd:element name="executionNode"
                      type="xsd:IDREF"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the node where the job is being executed</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.executionNode</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="creationTime"
                      type="xsd:dateTime"
                      minOccurs="1"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the time when the job execution was created</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.creationTime</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="startTime"
                      type="xsd:dateTime"
                      minOccurs="0"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the start time of the job execution</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.startTime</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="endTime" type="xsd:dateTime" minOccurs="0" maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the time at which the job execution finished</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.endTime</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="destructionTime"
                      type="xsd:dateTime"
                      minOccurs="0"
                      maxOccurs="1">
            <xsd:annotation>
               <xsd:documentation>the time at which the job execution will be destroyed</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:JobExecution.destructionTime</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:element>
         <xsd:element name="performanceMetrics">
            <xsd:complexType>
               <xsd:sequence>
                  <xsd:element name="performanceMetric"
                               type="execution:PerformanceMetric"
                               minOccurs="0"
                               maxOccurs="unbounded"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>
      </xsd:sequence>
   </xsd:complexType>
   <xsd:complexType name="PerformanceMetric">
      <xsd:annotation>
         <xsd:documentation>A performance metric for a job execution</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:PerformanceMetric</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
   </xsd:complexType>
   <xsd:simpleType name="ExecutionPhase">
      <xsd:annotation>
         <xsd:documentation>Enumeration of possible phases of job execution</xsd:documentation>
         <xsd:appinfo>
            <vodml-ref>execution:ExecutionPhase</vodml-ref>
         </xsd:appinfo>
      </xsd:annotation>
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="PENDING">
            <xsd:annotation>
               <xsd:documentation>The first phase a job is entered into - this is where
                                        a job is being set up but no request to run has
                                        occurred.</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.PENDING</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="QUEUED">
            <xsd:annotation>
               <xsd:documentation>A job has been accepted for execution but is waiting
                                        in a queue</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.QUEUED</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="PREPARING">
            <xsd:annotation>
               <xsd:documentation>A Job is preparing data mounts</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.PREPARING</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="EXECUTING">
            <xsd:annotation>
               <xsd:documentation>A job is running</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.EXECUTING</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="FINALIZING">
            <xsd:annotation>
               <xsd:documentation>A job is finalizing - this is a phase that can be used to indicate that the job has finished execution but is still doing some work to finalize the results 
                                  - e.g. copying results to a final location, cleaning up temporary resources etc</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.FINALIZING</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="COMPLETED">
            <xsd:annotation>
               <xsd:documentation>A job has completed successfully</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.COMPLETED</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="ERROR">
            <xsd:annotation>
               <xsd:documentation>Some form of error has occurred</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.ERROR</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="UNKNOWN">
            <xsd:annotation>
               <xsd:documentation>The job is in an unknown state.</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.UNKNOWN</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="HELD">
            <xsd:annotation>
               <xsd:documentation>The job is HELD pending execution and will not
                                        automatically be executed - can occur after a
                                        PHASE=RUN request has been made (cf PENDING).</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.HELD</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="SUSPENDED">
            <xsd:annotation>
               <xsd:documentation>The job has been suspended by the system during
                                        execution</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.SUSPENDED</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="ABORTED">
            <xsd:annotation>
               <xsd:documentation>The job has been aborted, either by user request or by
                                        the server because of lack or overuse of resources.</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.ABORTED</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
         <xsd:enumeration value="ARCHIVED">
            <xsd:annotation>
               <xsd:documentation>The job has been archived by the server at destruction time. An archived job
                                        may have deleted the results to reclaim resources, but must have job metadata preserved.
                                        This is an alternative that the server may choose in contrast to completely destroying all record of the job.</xsd:documentation>
               <xsd:appinfo>
                  <vodml-ref>execution:ExecutionPhase.ARCHIVED</vodml-ref>
               </xsd:appinfo>
            </xsd:annotation>
         </xsd:enumeration>
      </xsd:restriction>
   </xsd:simpleType>
</xsd:schema>
