Index: DCWoRMS/branches/coolemall/simulator/schemas/resources/DCWormsResSchemaOld.xsd
===================================================================
--- DCWoRMS/branches/coolemall/simulator/schemas/resources/DCWormsResSchemaOld.xsd	(revision 1230)
+++ DCWoRMS/branches/coolemall/simulator/schemas/resources/DCWormsResSchemaOld.xsd	(revision 1230)
@@ -0,0 +1,424 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	elementFormDefault="qualified" attributeFormDefault="unqualified">
+		
+		<xs:complexType name="pluginType">
+		<xs:annotation>
+			<xs:documentation>Base plugin type. 
+			Plugins allow configuring and adapting the simulation framework to his/her experiment 
+			starting from modeling job performance, through method of calculating energy estimation up to implementation of scheduling policies
+			Name of the plugin specifies the JAVA class that implements dedicated interface.</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="timeEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>TimeEstimationPlugin derived from pluginType. 
+			Time estimation plugin provides means to include specific application performance models during simulations
+			and allows introducing specific ways of calculating task execution time.</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:restriction base="pluginType">
+				<xs:sequence>
+					<xs:element name="name" type="xs:string" default="ExecTimeEstimationPlugin"></xs:element>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				</xs:sequence>
+			</xs:restriction>
+		</xs:complexContent>	
+	</xs:complexType>
+	
+	<xs:complexType name="resourceType">
+		<xs:annotation>
+			<xs:documentation>Base resource type. 
+			It allows to define simulation entities like computing resources, devices, schedulers.
+			Attributes: class - determines the component of the architecture i.e. rack, processor, memory, storage etc.
+			type - type of resource; for instance, continuous for memory, bandwidth, etc. and discrete for processors
+			name - unique resource identifier, if not specified it will be generated by the simulator in the following manner: class + "_" + subsequent_natural_number
+			</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="description" type="xs:string" minOccurs="0"></xs:element>
+		</xs:sequence>
+		<xs:attribute name="class" type="xs:string" use="required"/>
+		<xs:attribute name="type" type="xs:string" use="optional"/>
+		<xs:attribute name="name" type="xs:string" use="optional"/>
+	</xs:complexType>
+
+	<xs:complexType name="computingResourceType">
+		<xs:annotation>
+			<xs:documentation> ComputingResource derived from resourceType
+			Computing resource specifies resources that are able to perform computing operations. 
+			From the simulator point of view computing resource is everything that is/contains processing element.
+			Hence, all entities like core, processor, computing node, as well as those which aggregate them (like shelf, rack, container etc.)
+			should be define using this type. This way of description provides flexibility in defining system architecture
+			and allows to build hierarchy of resources that corresponds to real world.
+			Attributes: groupId - allows to group resources of the given class in the logical structures that can be used during binding them with schedulers
+			count - defines number of resources of the given class</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:sequence>
+					<xs:choice>
+						<xs:sequence>
+							<xs:element name="resourceUnit" type="resourceUnitType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+							<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+							<xs:element name="profile" type="profileType" minOccurs="0" maxOccurs="1"></xs:element>
+							<xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
+							<xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+						</xs:sequence>
+						<xs:sequence>
+							<xs:element name="templateId" type="xs:string"/>
+							<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+							<xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
+						</xs:sequence>
+					</xs:choice>
+				</xs:sequence>
+				<xs:attribute name="groupId" type="xs:integer" use="optional"/>			
+				<xs:attribute name="count" type="xs:integer" use="optional"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="computingResourceTemplateType">
+		<xs:annotation>
+			<xs:documentation>ComputingResourceTemplate derived from resourceType.
+			It allows user to define model of computing resource component that may constitute other computing resources
+			Computing resource templates can be then referred in computing resource definition</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:sequence>
+					<xs:element name="resourceUnit" type="resourceUnitType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+					<xs:element name="profile" type="profileType" minOccurs="0" maxOccurs="1"></xs:element>
+					<xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+
+	<xs:complexType name="schedulerType">
+		<xs:annotation>
+			<xs:documentation>Scheduler derived from resourceType.
+			It allows to model scheduling entity responsible for managing resources.</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:sequence>
+					<xs:element name="schedulingPlugin" type="schedulingPluginType" minOccurs="0" maxOccurs="1"></xs:element>
+					<xs:element name="queues" type="queueListType" minOccurs="0"></xs:element>
+					<xs:choice minOccurs="1" maxOccurs="unbounded">
+						<xs:element name="scheduler" type="schedulerType"></xs:element>
+						<xs:element name="managedComputingResources" type="managedComputingResourcesType"></xs:element>
+					</xs:choice>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="schedulingPluginType">
+		<xs:annotation>
+			<xs:documentation>SchedulingPlugin derived from pluginType. 
+			Scheduling plugins allow plugging scheduling algorithms into the simulated environment.
+			Elements: frequency - is used to enable scheduling periodically; it specifies the time interval (in seconds by default) between subsequent scheduling invocations
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType">
+				<xs:sequence>
+					<xs:element name="frequency" type="doubleValueWithUnitType" minOccurs="0" maxOccurs="1"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="resourceUnitType">
+		<xs:annotation>
+			<xs:documentation>Resource unit is used to define non-computing resource like memory, storage etc.
+			Elements: amount - represents concrete amount (values) of specific resource unit</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:sequence>
+					<xs:element name="amount" type="doubleValueWithUnitType"/>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+
+	<xs:complexType name="doubleValueWithUnitType">
+		<xs:annotation>
+			<xs:documentation>DoubleValueWitUnit derived from double. Allows providing units in which the given value is expressed
+			Attributes: unit - indicates appropriate units, for instance: seconds, watts, bytes etc. </xs:documentation>
+		</xs:annotation>
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="xs:string" use="optional"/>
+			</xs:extension>	
+		</xs:simpleContent>	
+	</xs:complexType>
+	
+	<xs:complexType name="stringValueWithUnitType">
+		<xs:annotation>
+			<xs:documentation>StringValueWitUnit derived from string. Allows providing units in which the given value is expressed
+			Attributes: unit - indicates appropriate units. </xs:documentation>
+		</xs:annotation>
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="unit" type="xs:string" use="optional"/>
+			</xs:extension>	
+		</xs:simpleContent>	
+	</xs:complexType>
+	
+	<xs:complexType name="queueListType">
+		<xs:annotation>
+			<xs:documentation>Profile acts as a container for resource profiles: power and air throughput</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="queue" type="queueType" minOccurs="1" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="queueType">
+		<xs:annotation>
+			<xs:documentation>Profile acts as a container for resource profiles: power and air throughput</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"></xs:element>
+			<xs:element name="priority" type="xs:int" minOccurs="0"></xs:element>
+			<xs:element name="reservation" type="xs:boolean" minOccurs="0" ></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="managedComputingResourcesType">
+		<xs:annotation>
+			<xs:documentation>ManagedComputingResource type specifies computing resources controlled by scheduler.
+			They can be provided either by listing their names or listing the group ids which they belong to.
+			Attributes: include - specifies whether the given resource layer (listed resources) can be allocated by the scheduler
+			In other words, false (default) value indicates that scheduler maneges only the subcomponents of the listed resources;
+			true value determines that also listed resources will be under the control of the defined scheduler</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:element name="resourceName" type="xs:string" minOccurs="1" maxOccurs="unbounded"></xs:element>
+			<xs:element name="resourceGroupId" type="xs:string" minOccurs="1" maxOccurs="unbounded"></xs:element>
+		</xs:choice>
+		<xs:attribute name="include" type="xs:boolean" default="false"/>
+	</xs:complexType>
+
+	<xs:complexType name="energyEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>EnergyEstimationPlugin derived from pluginType. 
+			Energy estimation plugin is used to estimate energy consumption of the given computing resource. 
+			It has access to the detailed resource description including power and air throughput profiles
+			and application characteristics running on a given resource</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="profileType">
+		<xs:annotation>
+			<xs:documentation>Profile acts as a container for resource profiles: power and air throughput</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="powerProfile" type="powerProfileType" minOccurs="0"></xs:element>
+			<xs:element name="airThroughputProfile" type="airThroughputProfileType" minOccurs="0"></xs:element>
+			<xs:element name="thermalProfile" type="thermalProfileType" minOccurs="0"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="powerProfileType">
+		<xs:annotation>
+			<xs:documentation>Power profile provides energyEstimation plugin, powerStates and other power-related parameters definition</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="energyEstimationPlugin" type="energyEstimationPluginType" minOccurs="0"></xs:element>
+			<xs:element name="powerStates" type="powerStatesType" minOccurs="0"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="powerStatesType">
+		<xs:annotation>
+			<xs:documentation>PowerState type act as a container for power states. It contains energy-related characteristics of the computing resource</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="powerState" type="powerStateType" minOccurs="1" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="powerStateType">
+		<xs:annotation>
+			<xs:documentation>Power state defines available (for computing resource) power states.
+			Elements: name - denotes name of the given power state
+			powerUsage - defines power consumption in the given state
+			transition - specifies possible power states transitions from the given power state</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"></xs:element>
+			<xs:element name="powerUsage" type="doubleValueWithUnitType" minOccurs="0" maxOccurs="1"></xs:element>
+			<xs:element name="transition" type="powerStatesTransitionType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="powerStatesTransitionType">
+		<xs:annotation>
+			<xs:documentation>Description of power states transtition
+			Elements: to - denotes name of target power state
+			powerUsage - defines transition cost in the form of power consumption
+			time - specifies transition time</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="to" type="xs:string"></xs:element>
+			<xs:element name="powerUsage" type="doubleValueWithUnitType"></xs:element>
+			<xs:element name="time" type="doubleValueWithUnitType"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="airThroughputEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>AirThroughputEstimationPlugin derived from pluginType. 
+			Air Throughput plugin is used to estimate air flow value based on the defined air throughput states</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="airThroughputProfileType">
+		<xs:annotation>
+			<xs:documentation>AirThrouhputProfile provides airThroughputEstimation plugin, airThroughputStates and other airThroughput-related parameters definition</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="airThroughputEstimationPlugin" type="airThroughputEstimationPluginType" minOccurs="0"></xs:element>
+			<xs:element name="airThroughputStates" type="airThroughputStatesType" minOccurs="0"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="airThroughputStatesType">
+		<xs:annotation>
+			<xs:documentation>AirThroughputStates type act as a container for air throughput states.</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="airThroughputState" type="airThroughputStateType" minOccurs="1" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+		<xs:attribute name="name" type="xs:string" use="optional"/>
+	</xs:complexType>
+	
+	<xs:complexType name="airThroughputStateType">
+		<xs:annotation>
+			<xs:documentation>Air througput state provides means to define air flow level. 
+			It can represent, for instance, a fan working state</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"></xs:element>
+			<xs:element name="value" type="doubleValueWithUnitType"></xs:element>
+			<xs:element name="powerUsage" type="doubleValueWithUnitType" minOccurs="0"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="temperatureEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>TemperatureEstimationPlugin derived from pluginType. 
+			Temperature plugin is used to estimate temperature based on the defined resource characteristics</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="thermalProfileType">
+		<xs:annotation>
+			<xs:documentation>ThermalProfile provides temperatureEstimation plugin,  and other thermal-related parameters definition</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="temperatureEstimationPlugin" type="temperatureEstimationPluginType" minOccurs="0"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="locationType">
+		<xs:annotation>
+			<xs:documentation>The location type describes placement of the computing resource using 3 coordinates</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="horizontal" type="xs:long"/>
+			<xs:element name="vertical" type="xs:long"/>
+			<xs:element name="depth" type="xs:long"/>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="parameterType">
+		<xs:annotation>
+			<xs:documentation>Parameter of resource. Allows defining additional resource parameters.
+			Contains a list of parameter values or a list of key-value pairs.
+			Attribute : name - denotes parameter name</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:element name="value" type="stringValueWithUnitType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:sequence>
+				<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
+					<xs:complexType>
+						<xs:annotation>
+							<xs:documentation>Property of parameter. Allows defining additional properties of parameter as a list of values.
+							Attribute : name - denotes property name</xs:documentation>
+						</xs:annotation>
+						<xs:sequence>
+							<xs:element name="value" type="stringValueWithUnitType" minOccurs="0" maxOccurs="unbounded"/>
+						</xs:sequence>
+						<xs:attribute name="name" type="xs:string" use="required"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:choice>
+		<xs:attribute name="name" type="xs:string" use="required"/>
+	</xs:complexType>
+	
+	<xs:element name="environment">
+		<xs:annotation>
+			<xs:documentation>Schema describing simulation environment</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
+				<xs:element name="timeEstimationPlugin" type="timeEstimationPluginType" minOccurs="0" maxOccurs="1"></xs:element>
+				<xs:element name="resources">
+					<xs:annotation>
+						<xs:documentation>Description of resources</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
+							<xs:element name="computingResource" type="computingResourceType" maxOccurs="unbounded"/>
+							<xs:element name="scheduler" type="schedulerType" maxOccurs="unbounded"/>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="templates" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>Definition of computing resource templates that can/will be used in resource description section </xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
+							<xs:element name="computingResourceTemplate" type="computingResourceTemplateType" maxOccurs="unbounded"/>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+
+</xs:schema>
Index: DCWoRMS/branches/coolemall/simulator/schemas/resources/DCwormsResSchema.xsd
===================================================================
--- DCWoRMS/branches/coolemall/simulator/schemas/resources/DCwormsResSchema.xsd	(revision 1230)
+++ DCWoRMS/branches/coolemall/simulator/schemas/resources/DCwormsResSchema.xsd	(revision 1230)
@@ -0,0 +1,493 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+	elementFormDefault="qualified" attributeFormDefault="unqualified">
+		
+	<xs:complexType name="pluginType">
+		<xs:annotation>
+			<xs:documentation>Base plugin type. 
+			Plugins allow configuring and adapting the simulation framework to his/her experiment 
+			starting from modeling job performance, through method of calculating energy estimation up to implementation of scheduling policies
+			Name of the plugin specifies the JAVA class that implements dedicated interface.</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="timeEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>TimeEstimationPlugin derived from pluginType. 
+			Time estimation plugin provides means to include specific application performance models during simulations
+			and allows introducing specific ways of calculating task execution time.</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:restriction base="pluginType">
+				<xs:sequence>
+					<xs:element name="name" type="xs:string"></xs:element>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				</xs:sequence>
+			</xs:restriction>
+		</xs:complexContent>	
+	</xs:complexType>
+	
+	<xs:complexType name="resourceType">
+		<xs:annotation>
+			<xs:documentation>Base resource type. 
+			It allows to define simulation entities like computing resources, devices, schedulers.
+			Attributes: class - determines the component of the architecture i.e. rack, processor, memory, storage etc.
+			type - type of resource; for instance, continuous for memory, bandwidth, etc. and discrete for processors
+			name - unique resource identifier, if not specified it will be generated by the simulator in the following manner: class + "_" + subsequent_natural_number
+			</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="description" type="xs:string" minOccurs="0"></xs:element>
+		</xs:sequence>
+		<xs:attribute name="class" type="xs:string" use="required"/>
+		<xs:attribute name="type" type="xs:string" use="optional"/>
+		<xs:attribute name="name" type="xs:string" use="optional"/>
+	</xs:complexType>
+
+	<xs:complexType name="physicalResourceType">
+		<xs:annotation>
+			<xs:documentation> ComputingResource derived from resourceType
+			Computing resource specifies resources that are able to perform computing operations. 
+			From the simulator point of view computing resource is everything that is/contains processing element.
+			Hence, all entities like core, processor, computing node, as well as those which aggregate them (like shelf, rack, container etc.)
+			should be define using this type. This way of description provides flexibility in defining system architecture
+			and allows to build hierarchy of resources that corresponds to real world.
+			Attributes: groupId - allows to group resources of the given class in the logical structures that can be used during binding them with schedulers
+			count - defines number of resources of the given class</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:attribute name="groupId" type="xs:integer" use="optional"/>			
+				<xs:attribute name="count" type="xs:integer" use="optional"/>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="computingResourceType">
+		<xs:annotation>
+			<xs:documentation> ComputingResource derived from physicalResourceType
+			Computing resource specifies resources that are able to perform computing operations. 
+			From the simulator point of view computing resource is everything that is/contains processing element.
+			Hence, all entities like core, processor, computing node, as well as those which aggregate them (like shelf, rack, container etc.)
+			should be define using this type. This way of description provides flexibility in defining system architecture
+			and allows to build hierarchy of resources that corresponds to real world.
+			Attributes: groupId - allows to group resources of the given class in the logical structures that can be used during binding them with schedulers
+			count - defines number of resources of the given class</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="physicalResourceType">
+				<xs:sequence>
+					<xs:choice>
+						<xs:sequence>
+							<xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
+							<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+							<xs:element name="profile" type="profileType" minOccurs="0" maxOccurs="1"></xs:element>
+							<xs:element name="device" type="deviceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+							<xs:element name="resourceUnit" type="resourceUnitType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+							<xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+						</xs:sequence>
+						<xs:sequence>
+							<xs:element name="templateId" type="xs:string"/>
+							<xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
+							<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+						</xs:sequence>
+					</xs:choice>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="deviceType">
+		<xs:annotation>
+			<xs:documentation> Device derived from physicalResourceType</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="physicalResourceType">
+				<xs:sequence>
+					<xs:choice>
+						<xs:sequence>
+							<xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
+							<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+							<xs:element name="profile" type="profileType" minOccurs="0" maxOccurs="1"></xs:element>
+						</xs:sequence>
+						<xs:sequence>
+							<xs:element name="templateId" type="xs:string"/>
+							<xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
+							<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+						</xs:sequence>
+					</xs:choice>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="computingResourceTemplateType">
+		<xs:annotation>
+			<xs:documentation>ComputingResourceTemplate derived from resourceType.
+			It allows user to define model of computing resource component that may constitute other computing resources
+			Computing resource templates can be then referred in computing resource definition</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:sequence>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+					<xs:element name="profile" type="profileType" minOccurs="0" maxOccurs="1"></xs:element>
+					<xs:element name="device" type="deviceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+					<xs:element name="resourceUnit" type="resourceUnitType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+					<xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="deviceTemplateType">
+		<xs:annotation>
+			<xs:documentation>ComputingResourceTemplate derived from resourceType.
+			It allows user to define model of computing resource component that may constitute other computing resources
+			Computing resource templates can be then referred in computing resource definition</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:sequence>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+					<xs:element name="profile" type="profileType" minOccurs="0" maxOccurs="1"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+
+	<xs:complexType name="schedulerType">
+		<xs:annotation>
+			<xs:documentation>Scheduler derived from resourceType.
+			It allows to model scheduling entity responsible for managing resources.</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:sequence>
+					<xs:element name="schedulingPlugin" type="schedulingPluginType" minOccurs="0" maxOccurs="1"></xs:element>
+					<xs:element name="queues" type="queueListType" minOccurs="0"></xs:element>
+					<xs:choice minOccurs="1" maxOccurs="unbounded">
+						<xs:element name="scheduler" type="schedulerType"></xs:element>
+						<xs:element name="managedComputingResources" type="managedComputingResourcesType"></xs:element>
+					</xs:choice>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="schedulingPluginType">
+		<xs:annotation>
+			<xs:documentation>SchedulingPlugin derived from pluginType. 
+			Scheduling plugins allow plugging scheduling algorithms into the simulated environment.
+			Elements: frequency - is used to enable scheduling periodically; it specifies the time interval (in seconds by default) between subsequent scheduling invocations
+			</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType">
+				<xs:sequence>
+					<xs:element name="frequency" type="doubleValueWithUnitType" minOccurs="0" maxOccurs="1"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="resourceUnitType">
+		<xs:annotation>
+			<xs:documentation>Resource unit is used to define non-computing resource like memory, storage etc.
+			Elements: amount - represents concrete amount (values) of specific resource unit</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="resourceType">
+				<xs:sequence>
+					<xs:element name="amount" type="doubleValueWithUnitType"/>
+					<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+
+	<xs:complexType name="doubleValueWithUnitType">
+		<xs:annotation>
+			<xs:documentation>DoubleValueWitUnit derived from double. Allows providing units in which the given value is expressed
+			Attributes: unit - indicates appropriate units, for instance: seconds, watts, bytes etc. </xs:documentation>
+		</xs:annotation>
+		<xs:simpleContent>
+			<xs:extension base="xs:double">
+				<xs:attribute name="unit" type="xs:string" use="optional"/>
+			</xs:extension>	
+		</xs:simpleContent>	
+	</xs:complexType>
+	
+	<xs:complexType name="stringValueWithUnitType">
+		<xs:annotation>
+			<xs:documentation>StringValueWitUnit derived from string. Allows providing units in which the given value is expressed
+			Attributes: unit - indicates appropriate units. </xs:documentation>
+		</xs:annotation>
+		<xs:simpleContent>
+			<xs:extension base="xs:string">
+				<xs:attribute name="unit" type="xs:string" use="optional"/>
+			</xs:extension>	
+		</xs:simpleContent>	
+	</xs:complexType>
+	
+	<xs:complexType name="queueListType">
+		<xs:annotation>
+			<xs:documentation>Profile acts as a container for resource profiles: power and air throughput</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="queue" type="queueType" minOccurs="1" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="queueType">
+		<xs:annotation>
+			<xs:documentation>Profile acts as a container for resource profiles: power and air throughput</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"></xs:element>
+			<xs:element name="priority" type="xs:int" minOccurs="0"></xs:element>
+			<xs:element name="reservation" type="xs:boolean" minOccurs="0" ></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="managedComputingResourcesType">
+		<xs:annotation>
+			<xs:documentation>ManagedComputingResource type specifies computing resources controlled by scheduler.
+			They can be provided either by listing their names or listing the group ids which they belong to.
+			Attributes: include - specifies whether the given resource layer (listed resources) can be allocated by the scheduler
+			In other words, false (default) value indicates that scheduler maneges only the subcomponents of the listed resources;
+			true value determines that also listed resources will be under the control of the defined scheduler</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:element name="resourceName" type="xs:string" minOccurs="1" maxOccurs="unbounded"></xs:element>
+			<xs:element name="resourceGroupId" type="xs:string" minOccurs="1" maxOccurs="unbounded"></xs:element>
+		</xs:choice>
+		<xs:attribute name="include" type="xs:boolean" default="false"/>
+	</xs:complexType>
+
+	<xs:complexType name="energyEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>EnergyEstimationPlugin derived from pluginType. 
+			Energy estimation plugin is used to estimate energy consumption of the given computing resource. 
+			It has access to the detailed resource description including power and air throughput profiles
+			and application characteristics running on a given resource</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="profileType">
+		<xs:annotation>
+			<xs:documentation>Profile acts as a container for resource profiles: power and air throughput</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="powerProfile" type="powerProfileType" minOccurs="0"></xs:element>
+			<xs:element name="airThroughputProfile" type="airThroughputProfileType" minOccurs="0"></xs:element>
+			<xs:element name="thermalProfile" type="thermalProfileType" minOccurs="0"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="powerProfileType">
+		<xs:annotation>
+			<xs:documentation>Power profile provides energyEstimation plugin, powerStates and other power-related parameters definition</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="energyEstimationPlugin" type="energyEstimationPluginType" minOccurs="0"></xs:element>
+			<xs:element name="powerStates" type="powerStatesListType" minOccurs="0"></xs:element>
+			<xs:element name="loadPowerUsage" type="loadPowerUsageType" minOccurs="0"></xs:element>			
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="powerStatesListType">
+		<xs:annotation>
+			<xs:documentation>PowerState type act as a container for power states. It contains energy-related characteristics of the computing resource</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="powerState" type="powerStateType" minOccurs="1" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="powerStateType">
+		<xs:annotation>
+			<xs:documentation>Power state defines available (for computing resource) power states.
+			Elements: name - denotes name of the given power state
+			powerUsage - defines power consumption in the given state
+			transition - specifies possible power states transitions from the given power state</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"></xs:element>
+			<xs:element name="powerUsage" type="doubleValueWithUnitType" minOccurs="0" maxOccurs="1"></xs:element>
+			<xs:element name="transition" type="powerStatesTransitionType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="powerStatesTransitionType">
+		<xs:annotation>
+			<xs:documentation>Description of power states transtition
+			Elements: to - denotes name of target power state
+			powerUsage - defines transition cost in the form of power consumption
+			time - specifies transition time</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="to" type="xs:string"></xs:element>
+			<xs:element name="powerUsage" type="doubleValueWithUnitType"></xs:element>
+			<xs:element name="time" type="doubleValueWithUnitType"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+		
+	<xs:complexType name="loadPowerUsageType">
+		<xs:sequence>
+			<xs:element name="load" type="xs:float" maxOccurs="1" minOccurs="1"></xs:element>
+			<xs:element name="powerUsage" type="xs:float" maxOccurs="1" minOccurs="1"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="airThroughputEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>AirThroughputEstimationPlugin derived from pluginType. 
+			Air Throughput plugin is used to estimate air flow value based on the defined air throughput states</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="airThroughputProfileType">
+		<xs:annotation>
+			<xs:documentation>AirThrouhputProfile provides airThroughputEstimation plugin, airThroughputStates and other airThroughput-related parameters definition</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="airThroughputEstimationPlugin" type="airThroughputEstimationPluginType" minOccurs="0"></xs:element>
+			<xs:element name="airThroughputStates" type="airThroughputStatesListType" minOccurs="0"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="airThroughputStatesListType">
+		<xs:annotation>
+			<xs:documentation>AirThroughputStates type act as a container for air throughput states.</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="airThroughputState" type="airThroughputStateType" minOccurs="1" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+		<xs:attribute name="name" type="xs:string" use="optional"/>
+	</xs:complexType>
+	
+	<xs:complexType name="airThroughputStateType">
+		<xs:annotation>
+			<xs:documentation>Air throughput state provides means to define air flow level. 
+			It can represent, for instance, a fan working state</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="name" type="xs:string"></xs:element>
+			<xs:element name="value" type="doubleValueWithUnitType"></xs:element>
+			<xs:element name="powerUsage" type="doubleValueWithUnitType" minOccurs="0"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="temperatureEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>TemperatureEstimationPlugin derived from pluginType. 
+			Temperature plugin is used to estimate temperature based on the defined resource characteristics</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType"/>
+		</xs:complexContent>
+	</xs:complexType>
+	
+	<xs:complexType name="thermalProfileType">
+		<xs:annotation>
+			<xs:documentation>ThermalProfile provides temperatureEstimation plugin, and other thermal-related parameters definition</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="temperatureEstimationPlugin" type="temperatureEstimationPluginType" minOccurs="0"></xs:element>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="locationType">
+		<xs:annotation>
+			<xs:documentation>The location type describes placement of the computing resource using 3 coordinates</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="horizontal" type="xs:long"/>
+			<xs:element name="vertical" type="xs:long"/>
+			<xs:element name="depth" type="xs:long"/>
+			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="parameterType">
+		<xs:annotation>
+			<xs:documentation>Parameter of resource. Allows defining additional resource parameters.
+			Contains a list of parameter values or a list of key-value pairs.
+			Attribute : name - denotes parameter name</xs:documentation>
+		</xs:annotation>
+		<xs:choice>
+			<xs:element name="value" type="stringValueWithUnitType" minOccurs="0" maxOccurs="unbounded"/>
+			<xs:sequence>
+				<xs:element name="property" minOccurs="0" maxOccurs="unbounded">
+					<xs:complexType>
+						<xs:annotation>
+							<xs:documentation>Property of parameter. Allows defining additional properties of parameter as a list of values.
+							Attribute : name - denotes property name</xs:documentation>
+						</xs:annotation>
+						<xs:sequence>
+							<xs:element name="value" type="stringValueWithUnitType" minOccurs="0" maxOccurs="unbounded"/>
+						</xs:sequence>
+						<xs:attribute name="name" type="xs:string" use="required"/>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:choice>
+		<xs:attribute name="name" type="xs:string" use="required"/>
+	</xs:complexType>
+	
+	<xs:element name="environment">
+		<xs:annotation>
+			<xs:documentation>Schema describing simulation environment</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
+				<xs:element name="timeEstimationPlugin" type="timeEstimationPluginType" minOccurs="0" maxOccurs="1"></xs:element>
+				<xs:element name="resources">
+					<xs:annotation>
+						<xs:documentation>Description of resources</xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
+							<xs:element name="computingResource" type="computingResourceType" maxOccurs="unbounded"/>
+							<xs:element name="scheduler" type="schedulerType" maxOccurs="unbounded"/>
+						</xs:sequence>
+						<xs:attribute name="mode" type="xs:string" default="Standard"/>
+					</xs:complexType>
+				</xs:element>
+				<xs:element name="templates" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>Definition of computing resource templates that can/will be used in resource description section </xs:documentation>
+					</xs:annotation>
+					<xs:complexType>
+						<xs:sequence>
+							<xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
+							<xs:element name="computingResourceTemplate" type="computingResourceTemplateType" minOccurs="0" maxOccurs="unbounded"/>
+							<xs:element name="deviceTemplate" type="deviceTemplateType" minOccurs="0" maxOccurs="unbounded"/>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+
+</xs:schema>
