Index: /DCWoRMS/branches/coolemall/simulator/schemas/grms3/QCGJobDescriptionSchemaNew.xsd
===================================================================
--- /DCWoRMS/branches/coolemall/simulator/schemas/grms3/QCGJobDescriptionSchemaNew.xsd	(revision 1543)
+++ /DCWoRMS/branches/coolemall/simulator/schemas/grms3/QCGJobDescriptionSchemaNew.xsd	(revision 1543)
@@ -0,0 +1,694 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by Tomasz Piontek (Instytut Chemii Bioorganicznej PAN) -->
+<!--Job Description Schema for Third Edition QCG -->
+<!--version 0.1.0-->
+<xs:schema xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" jxb:version="1.0">
+	<xs:simpleType name="computingParameterName">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="osname"/>
+			<xs:enumeration value="ostype"/>
+			<xs:enumeration value="cpuarch"/>
+			<xs:enumeration value="osversion"/>
+			<xs:enumeration value="osrelease"/>
+			<xs:enumeration value="memory"/>
+			<xs:enumeration value="properties"/>
+			<xs:enumeration value="freememory"/>
+			<xs:enumeration value="cpucount"/>
+			<xs:enumeration value="gpucount"/>
+			<xs:enumeration value="freecpus"/>
+			<xs:enumeration value="cpuspeed"/>
+			<xs:enumeration value="application"/>
+			<xs:enumeration value="module"/>
+			<xs:enumeration value="diskspace"/>
+			<xs:enumeration value="freediskspace"/>
+			<xs:enumeration value="remoteSubmissionInterface"/>
+			<xs:enumeration value="localResourceManager"/>
+			<xs:enumeration value="hostname"/>
+			<xs:enumeration value="queue"/>
+			<xs:enumeration value="native"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="networkParameterName">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="bandwidth"/>
+			<xs:enumeration value="latency"/>
+			<xs:enumeration value="capacity"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="taskStatesName">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="QUEUED"/>
+			<xs:enumeration value="PREPROCESSING"/>
+			<xs:enumeration value="PENDING"/>
+			<xs:enumeration value="RUNNING"/>
+			<xs:enumeration value="STOPPED"/>
+			<xs:enumeration value="POSTPROCESSING"/>
+			<xs:enumeration value="SUSPENDED"/>
+			<xs:enumeration value="FINISHED"/>
+			<xs:enumeration value="CANCELED"/>
+			<xs:enumeration value="FAILED"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="locationTypes">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="URL"/>
+			<xs:enumeration value="DMSID"/>
+			<xs:enumeration value="SRBID"/>
+			<xs:enumeration value="REFERENCE"/>
+		</xs:restriction>
+	</xs:simpleType>
+
+	<xs:element name="job">
+		<xs:annotation>
+			<xs:documentation>Job Description for DCworms</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="note" type="xs:string" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>User defined description of Job</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+				<xs:element name="annotations" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>Annotations for Job Description in pair key/value format</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="annotation" maxOccurs="unbounded">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:string">
+											<xs:attribute name="name" type="xs:string" use="optional"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="task" maxOccurs="unbounded">
+					<xs:annotation>
+						<xs:documentation>Description of Tasks</xs:documentation>
+						<xs:documentation>Description of Simple Job</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:complexContent>
+							<xs:extension base="taskType"/>
+						</xs:complexContent>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="executionTime" type="executionTimeType" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>Execution time definition for Job</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+			</xs:sequence>
+			<xs:attribute name="id" type="xs:string" use="required"/>
+			<xs:attribute name="priority" type="xs:int" use="optional" default="0"/>
+		</xs:complexType>
+		<xs:key name="taskId">
+			<xs:selector xpath=".//task"/>
+			<xs:field xpath="@id"/>
+		</xs:key>
+
+	</xs:element>
+	<xs:complexType name="taskType">
+		<xs:annotation>
+			<xs:documentation>Description of Task</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="note" type="xs:string" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>User defined description of Task</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="requirements" type="requirementsType" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>Description of resource requirements</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="execution" type="executionType" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>Application description section</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="executionTime"  type="executionTimeType" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>Description of time constraints for task execution</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="workflow" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>Workflow description</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:choice>
+						<xs:element name="parent" type="parentType" maxOccurs="unbounded"/>
+						<xs:element name="or" type="parentOpType"/>
+						<xs:element name="and" type="parentOpType"/>
+					</xs:choice>
+				</xs:complexType>
+			</xs:element>
+
+		</xs:sequence>
+		<xs:attribute name="id" type="xs:string" use="required"/>
+		<xs:attribute name="persistent" type="xs:boolean" use="optional" default="false"/>
+		<xs:attribute name="extension" type="xs:string" use="optional"/>
+		<xs:attribute name="crucial" type="xs:boolean" use="optional" default="true"/>
+
+		<xs:attribute name="priority" type="xs:int" use="optional" default="0"/>
+	</xs:complexType>
+	<xs:complexType name="fileType">
+		<xs:annotation>
+			<xs:documentation>Base element for file description</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="location">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:string">
+							<xs:attribute name="type" type="locationTypes" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="locationProperties" minOccurs="0">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="property" maxOccurs="unbounded">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:string">
+										<xs:attribute name="name" type="xs:string"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+		<xs:attribute name="name" type="xs:string" use="required"/>
+		<xs:attribute name="type" use="optional">
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="in"/>
+					<xs:enumeration value="out"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="required" type="xs:boolean" use="optional" default="true"/>
+		<xs:attribute name="size" type="xs:double" use="optional"/>
+	</xs:complexType>
+
+	<xs:complexType name="executionTimeType">
+		<xs:annotation>
+			<xs:documentation>Description for time constraints of job execution</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="executionDuration" type="xs:duration">
+				<xs:annotation>
+					<xs:documentation>How long the Task is running</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="timePeriod" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>Time period where to look for time slot</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="periodStart" type="xs:dateTime" minOccurs="0"/>
+						<xs:choice minOccurs="0">
+							<xs:element name="periodEnd" type="xs:dateTime"/>
+							<xs:element name="periodDuration" type="xs:duration"/>
+						</xs:choice>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+
+	<xs:complexType name="rangeType">
+		<xs:annotation>
+			<xs:documentation>Range of values definition</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="min" type="parameterBoundaryType"/>
+			<xs:element name="max" type="parameterBoundaryType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="parameterType">
+		<xs:annotation>
+			<xs:documentation>Description of parameter of resource</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element name="value">
+					<xs:complexType>
+						<xs:simpleContent>
+							<xs:extension base="parameterValueType">
+								<xs:attribute name="exclude" type="xs:boolean" use="optional" default="false"/>
+							</xs:extension>
+						</xs:simpleContent>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="range">
+					<xs:complexType>
+						<xs:complexContent>
+							<xs:extension base="rangeType">
+								<xs:attribute name="exclude" type="xs:boolean" use="optional" default="false"/>
+							</xs:extension>
+						</xs:complexContent>
+					</xs:complexType>
+				</xs:element>
+			</xs:choice>
+			<xs:element name="min" type="parameterBoundaryType"/>
+			<xs:element name="max" type="parameterBoundaryType"/>
+			<xs:element name="stringValue" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
+							<xs:complexType>
+								<xs:sequence>
+									<xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+								</xs:sequence>
+								<xs:attribute name="name" type="xs:string" use="required"/>
+								<xs:attribute name="exclude" type="xs:boolean" use="optional" default="false"/>
+							</xs:complexType>
+						</xs:element>
+					</xs:sequence>
+					<xs:attribute name="value" type="xs:string" use="optional"/>
+					<xs:attribute name="exclude" type="xs:boolean" use="optional" default="false"/>
+				</xs:complexType>
+			</xs:element>
+		</xs:choice>
+	</xs:complexType>
+	<xs:complexType name="otherParameterType">
+		<xs:annotation>
+			<xs:documentation>Dynamically defined parameter of resource</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="parameterType">
+				<xs:attribute name="name" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+
+	<xs:complexType name="networkParameterType">
+		<xs:annotation>
+			<xs:documentation>Parameters of network connection</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="parameterType">
+				<xs:attribute name="name" type="networkParameterName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="computingResourceBaseType">
+		<xs:annotation>
+			<xs:documentation>Base type for computing resource</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element name="hostParameter" type="computingResourceParameterType"/>
+				<xs:element name="networkParameter" type="computingResourceNetParameterType"/>
+			</xs:choice>
+			<xs:element name="templateIdReference" type="xs:string"/>
+		</xs:choice>
+		<xs:attribute name="resourceId" type="xs:string" use="optional"/>
+	</xs:complexType>
+	<xs:complexType name="computingResourceType">
+		<xs:annotation>
+			<xs:documentation>Computing resource</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="computingResourceBaseType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="computingResourceNetParameterType">
+		<xs:annotation>
+			<xs:documentation>Network related parameter</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="parameterType">
+				<xs:attribute name="name" type="networkParameterName" use="required"/>
+				<xs:attribute name="endpoint" type="xs:string" use="optional"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="computingResourceParameterType">
+		<xs:annotation>
+			<xs:documentation>Computational resource related parameter</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="parameterType">
+				<xs:attribute name="name" type="computingParameterName" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="networkResourceType">
+		<xs:annotation>
+			<xs:documentation>Description of network connection</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:choice maxOccurs="unbounded">
+				<xs:element name="networkParameter" type="networkParameterType"/>
+			</xs:choice>
+		</xs:choice>
+		<xs:attribute name="resourceId" type="xs:string" use="optional"/>
+	</xs:complexType>
+	<xs:complexType name="executionType">
+		<xs:annotation>
+			<xs:documentation>Definition of program execution part of job description</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="executable" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>Description of application executable</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:choice>
+						<xs:element name="application">
+							<xs:annotation>
+								<xs:documentation>Information about application installed on host</xs:documentation>
+							</xs:annotation>
+							<xs:complexType>
+								<xs:sequence>
+									<xs:element name="appProperty" minOccurs="0" maxOccurs="unbounded">
+										<xs:complexType>
+											<xs:simpleContent>
+												<xs:extension base="xs:string">
+													<xs:attribute name="name" type="xs:string" use="required"/>
+												</xs:extension>
+											</xs:simpleContent>
+										</xs:complexType>
+									</xs:element>
+								</xs:sequence>
+								<xs:attribute name="name" type="xs:string" use="required"/>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="execFile" maxOccurs="unbounded">
+							<xs:annotation>
+								<xs:documentation>Executable file description</xs:documentation>
+							</xs:annotation>
+							<xs:complexType>
+								<xs:sequence>
+									<xs:element name="execProperties" minOccurs="0">
+										<xs:annotation>
+											<xs:documentation>Properties of given executable</xs:documentation>
+										</xs:annotation>
+										<xs:complexType>
+											<xs:choice>
+												<xs:element name="resourceIdReference" type="xs:string"/>
+												<xs:choice maxOccurs="unbounded">
+													<xs:element name="hostParameter" type="computingResourceParameterType"/>
+													<xs:element name="otherParameter" type="otherParameterType"/>
+												</xs:choice>
+											</xs:choice>
+										</xs:complexType>
+									</xs:element>
+								</xs:sequence>
+							</xs:complexType>
+						</xs:element>
+					</xs:choice>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="stdin" type="fileType" minOccurs="0" maxOccurs="unbounded">
+				<xs:annotation>
+					<xs:documentation>Standard input stream location</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="stdout" type="fileType" minOccurs="0" maxOccurs="unbounded">
+				<xs:annotation>
+					<xs:documentation>Standard output stream location</xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="resourceConsumptionProfile" type="resourceConsumptionProfileType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="type" use="optional">
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="single"/>
+					<xs:enumeration value="multiple"/>
+					<xs:enumeration value="mpi"/>
+					<xs:enumeration value="mpichg"/>
+					<xs:enumeration value="open_mpi"/>
+					<xs:enumeration value="open_mp"/>
+					<xs:enumeration value="mpi_mp"/>
+					<xs:enumeration value="proactive"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="countRangeType">
+		<xs:annotation>
+			<xs:documentation>Range of count parameter</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="min" type="countBoundaryType"/>
+			<xs:element name="max" type="countBoundaryType"/>
+		</xs:sequence>
+	</xs:complexType>
+
+	<xs:complexType name="preferencesType">
+		<xs:annotation>
+			<xs:documentation>User preferences concerning scheduling</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="parameter" maxOccurs="unbounded">
+				<xs:complexType>
+					<xs:choice minOccurs="0">
+						<xs:choice>
+							<xs:element name="value" type="parameterValueType"/>
+							<xs:element name="min" type="parameterBoundaryType"/>
+							<xs:element name="max" type="parameterBoundaryType"/>
+							<xs:element name="range" type="rangeType"/>
+						</xs:choice>
+						<xs:element name="stringValue" type="xs:string"/>
+					</xs:choice>
+					<xs:attribute name="name" type="xs:string" use="required"/>
+					<xs:attribute name="optimizationType" use="required">
+						<xs:simpleType>
+							<xs:restriction base="xs:string">
+								<xs:enumeration value="GAIN"/>
+								<xs:enumeration value="COST"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:attribute>
+					<xs:attribute name="importance" type="xs:int" use="required"/>
+					<xs:attribute name="endpoint" type="xs:string" use="optional"/>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+		<xs:attribute name="preferenceType" use="required">
+			<xs:simpleType>
+				<xs:restriction base="xs:string">
+					<xs:enumeration value="PRIORITY"/>
+					<xs:enumeration value="RANKING"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="requirementsType">
+		<xs:annotation>
+			<xs:documentation>Resource description</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="resourceRequirements" type="resourceRequirementsType" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>Computing resource requirements </xs:documentation>
+				</xs:annotation>
+			</xs:element>
+			<xs:element name="topology" minOccurs="0">
+				<xs:annotation>
+					<xs:documentation>Processes topology definition</xs:documentation>
+				</xs:annotation>
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="group" minOccurs="0" maxOccurs="unbounded">
+							<xs:annotation>
+								<xs:documentation>Groups of processes definition</xs:documentation>
+							</xs:annotation>
+							<xs:complexType>
+								<xs:sequence>
+									<xs:element name="processesConnection" minOccurs="0">
+										<xs:annotation>
+											<xs:documentation>Requirements for network parameters of connection among processes in group</xs:documentation>
+										</xs:annotation>
+										<xs:complexType>
+											<xs:sequence>
+												<xs:element name="networkResource" type="networkResourceType" maxOccurs="unbounded"/>
+											</xs:sequence>
+										</xs:complexType>
+									</xs:element>
+									<xs:element name="groupConnection" minOccurs="0" maxOccurs="unbounded">
+										<xs:annotation>
+											<xs:documentation>Requirements for network parameters of connection between current group and group with provided id</xs:documentation>
+										</xs:annotation>
+										<xs:complexType>
+											<xs:sequence>
+												<xs:element name="networkResource" type="networkResourceType" maxOccurs="unbounded"/>
+											</xs:sequence>
+											<xs:attribute name="endpointGroupId" type="xs:string" use="required"/>
+										</xs:complexType>
+									</xs:element>
+								</xs:sequence>
+								<xs:attribute name="groupId" type="xs:string" use="required"/>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="processes" maxOccurs="unbounded">
+							<xs:annotation>
+								<xs:documentation>Processes definition</xs:documentation>
+							</xs:annotation>
+							<xs:complexType>
+															<xs:sequence>
+									<xs:element name="groupIdReference" type="xs:string" minOccurs="0" maxOccurs="unbounded">
+										<xs:annotation>
+											<xs:documentation>Ids of group that the process belongs</xs:documentation>
+										</xs:annotation>
+									</xs:element>
+									<xs:element name="processesCount" type="countType" minOccurs="0">
+										<xs:annotation>
+											<xs:documentation>Number of process with specified resources requirements</xs:documentation>
+										</xs:annotation>
+									</xs:element>
+									<xs:element name="resourceRequirements" minOccurs="0">
+										<xs:annotation>
+											<xs:documentation>Resource requirements of defined processes</xs:documentation>
+										</xs:annotation>
+										<xs:complexType>
+											<xs:sequence>
+												<xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded">
+													<xs:annotation>
+														<xs:documentation>Definition of resource reqiurements for processes</xs:documentation>
+													</xs:annotation>
+												</xs:element>
+												<xs:element name="preferences" type="preferencesType" minOccurs="0"/>
+											</xs:sequence>
+										</xs:complexType>
+									</xs:element>
+								</xs:sequence>
+								<xs:attribute name="processesId" type="xs:string" use="required"/>
+								<xs:attribute name="masterGroup" type="xs:boolean" use="optional"/>
+							</xs:complexType>
+						</xs:element>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="countType">
+		<xs:annotation>
+			<xs:documentation>Description of count element</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:element name="value">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="indiffThreshold" type="xs:int" use="optional" default="0"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="min" type="countBoundaryType"/>
+			<xs:element name="max" type="countBoundaryType"/>
+			<xs:element name="range" type="countRangeType"/>
+		</xs:choice>
+	</xs:complexType>
+	<xs:complexType name="parameterValueType">
+		<xs:annotation>
+			<xs:documentation>Value of the parameter</xs:documentation>
+		</xs:annotation>
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="indiffThreshold" type="xs:double" use="optional" default="0"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+
+	<xs:complexType name="parameterBoundaryType">
+		<xs:annotation>
+			<xs:documentation>Description of boundary for parameters</xs:documentation>
+		</xs:annotation>
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="exclusiveBound" type="xs:boolean" use="optional" default="false"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	<xs:complexType name="countBoundaryType">
+		<xs:annotation>
+			<xs:documentation>Description of boundary for count</xs:documentation>
+		</xs:annotation>
+		<xs:simpleContent>
+			<xs:extension base="xs:int">
+				<xs:attribute name="exclusiveBound" type="xs:boolean" use="optional" default="false"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+
+	<xs:complexType name="resourceRequirementsType">
+		<xs:sequence>
+			<xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="preferences" type="preferencesType" minOccurs="0"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="parentOpType">
+		<xs:choice maxOccurs="unbounded">
+			<xs:element name="or" type="parentOpType"/>
+			<xs:element name="and" type="parentOpType"/>
+			<xs:element name="parent" type="parentType"/>
+		</xs:choice>
+	</xs:complexType>
+	<xs:complexType name="parentType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="triggerState" type="taskStatesName" use="optional" default="FINISHED"/>
+				<xs:attribute name="runSameHost" type="xs:boolean" use="optional" default="false"/>
+				<xs:attribute name="atEachIteration" type="xs:boolean" use="optional" default="false"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<xs:complexType name="resourceConsumptionProfileType">
+		<xs:sequence>
+			<xs:element name="properties" type="stringParameterType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:element name="resourceConsumption" type="resourceConsumptionType" minOccurs="1" maxOccurs="unbounded"/>
+		</xs:sequence>
+		<xs:attribute name="type" type="xs:string" use="optional"/>
+	</xs:complexType>
+	
+	<xs:complexType name="resourceConsumptionType">
+		<xs:sequence>
+			<xs:element name="id" type="xs:string" minOccurs="0"/>
+			<xs:element name="referenceHardware" type="referenceHardwareType" minOccurs="0"/>
+			<xs:element name="duration" type="xs:duration" minOccurs="0"/>
+			<xs:element name="behaviour" type="phaseBehaviourType" minOccurs="1" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="referenceHardwareType">
+		<xs:sequence>
+			<xs:element name="reference" type="stringParameterType" minOccurs="0" maxOccurs="unbounded"/>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="stringParameterType">
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="name" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:simpleContent>
+	</xs:complexType>
+	
+	<xs:complexType name="phaseBehaviourType">
+		<xs:complexContent>
+			<xs:extension base="parameterType">
+				<xs:attribute name="name" type="xs:string" use="required"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+</xs:schema>
