Index: /xssim/trunk/src/test/rewolucja/schemas/XSSimResSchema.xsd
===================================================================
--- /xssim/trunk/src/test/rewolucja/schemas/XSSimResSchema.xsd	(revision 314)
+++ /xssim/trunk/src/test/rewolucja/schemas/XSSimResSchema.xsd	(revision 315)
@@ -3,7 +3,7 @@
 	elementFormDefault="qualified" attributeFormDefault="unqualified">
 		
-	<xs:complexType name="timeEstimationPluginType">
-		<xs:annotation>
-			<xs:documentation>Time estimation plugin</xs:documentation>
+		<xs:complexType name="pluginType">
+		<xs:annotation>
+			<xs:documentation>Base plugin description</xs:documentation>
 		</xs:annotation>
 		<xs:sequence>
@@ -13,4 +13,12 @@
 	</xs:complexType>
 	
+	<xs:complexType name="timeEstimationPluginType">
+		<xs:annotation>
+			<xs:documentation>Time estimation plugin</xs:documentation>
+		</xs:annotation>
+		<xs:complexContent>
+			<xs:extension base="pluginType"/>
+		</xs:complexContent>	
+	</xs:complexType>
 	
 	<xs:complexType name="resourceType">
@@ -19,8 +27,9 @@
 		</xs:annotation>
 		<xs:sequence>
-			<xs:element name="description" type="xs:string" minOccurs="0" ></xs:element>
-		</xs:sequence>
-		<xs:attribute name="type" type="xs:string" use="required" />
-		<xs:attribute name="id" type="xs:ID" use="optional" />
+			<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="id" type="xs:ID" use="optional"/>
 	</xs:complexType>
 
@@ -31,15 +40,17 @@
 		<xs:complexContent>
 			<xs:extension base="resourceType">
-				<xs:choice>
-					<xs:sequence>
-						<xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
-						<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="energyEstimationPlugin" type="energyEstimationPluginType" minOccurs="0" maxOccurs="1"></xs:element>
-						<xs:element name="powerProfile" type="powerProfileType" minOccurs="0" maxOccurs="1"></xs:element>
-						<xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
-					</xs:sequence>
-					<xs:element name="templateId" type="xs:IDREF"/>
-				</xs:choice>
+				<xs:sequence>
+					<xs:choice>
+						<xs:sequence>
+							<xs:element name="computingResource" type="computingResourceType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+							<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="energyEstimationPlugin" type="energyEstimationPluginType" minOccurs="0" maxOccurs="1"></xs:element>
+							<xs:element name="powerProfile" type="powerProfileType" minOccurs="0" maxOccurs="1"></xs:element>
+						</xs:sequence>
+						<xs:element name="templateId" type="xs:IDREF"/>
+					</xs:choice>
+					<xs:element name="location" type="locationType" minOccurs="0" maxOccurs="1"></xs:element>
+				</xs:sequence>
 				<xs:attribute name="groupId" type="xs:integer" use="optional"/>			
 				<xs:attribute name="count" type="xs:integer" use="optional"/>
@@ -87,9 +98,11 @@
 			<xs:documentation>Scheduling plugin</xs:documentation>
 		</xs:annotation>
-		<xs:sequence>
-			<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
-			<xs:element name="frequency" type="xs:integer" minOccurs="0" maxOccurs="1"></xs:element>
-			<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
-		</xs:sequence>
+		<xs:complexContent>
+			<xs:extension base="pluginType">
+				<xs:sequence>
+					<xs:element name="frequency" type="xs:integer" minOccurs="0" maxOccurs="1"></xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
 	</xs:complexType>
 	
@@ -116,13 +129,4 @@
 		<xs:attribute name="include" type="xs:boolean" default="false"/>
 	</xs:complexType>
-	
-	<xs:complexType name="resourceList">
-		<xs:annotation>
-			<xs:documentation>List of managed computing resources</xs:documentation>
-		</xs:annotation>
-		<xs:sequence minOccurs="0" maxOccurs="unbounded">
-			<xs:element name="resourceId" type="xs:string"></xs:element>
-		</xs:sequence>
-	</xs:complexType>
 
 	<xs:complexType name="energyEstimationPluginType">
@@ -130,8 +134,7 @@
 			<xs:documentation>Energy consumption estimation plugin</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:complexContent>
+			<xs:extension base="pluginType"/>
+		</xs:complexContent>
 	</xs:complexType>
 	
@@ -141,8 +144,8 @@
 		</xs:annotation>
 		<xs:sequence>
-			<xs:element name="name" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
 			<xs:sequence>
-				<xs:element name="powerStates" type="powerStatesType" minOccurs="0" maxOccurs="unbounded"></xs:element>
-				<xs:element name="pStates" type="pStatesType" minOccurs="0" maxOccurs="unbounded"></xs:element>
+				<xs:element name="powerStates" type="powerStatesType" minOccurs="0"></xs:element>
+				<xs:element name="pStates" type="pStatesType" minOccurs="0"></xs:element>
+				<xs:element name="fan" type="fanType" minOccurs="0"></xs:element>
 				<xs:element name="parameter" type="parameterType" minOccurs="0" maxOccurs="unbounded"></xs:element>
 			</xs:sequence>
@@ -166,5 +169,5 @@
 			<xs:element name="name" type="xs:string"></xs:element>
 			<xs:element name="frequency" type="xs:double"></xs:element>
-			<xs:element name="voltage" type="xs:double"></xs:element>
+			<xs:element name="voltage" type="xs:double" minOccurs="0"></xs:element>
 			<xs:element name="power" type="xs:double"></xs:element>
 		</xs:sequence>
@@ -206,7 +209,17 @@
 			<xs:documentation>Description of the computing resource fan</xs:documentation>
 		</xs:annotation>
-		<xs:sequence>
-			<xs:element name="speed" type="xs:double" minOccurs="1"></xs:element>
-			<xs:element name="power" type="xs:double" minOccurs="0" maxOccurs="1"></xs:element>
+		<xs:sequence minOccurs="1" maxOccurs="unbounded">
+			<xs:element name="fanState" type="fanStateType"></xs:element>
+		</xs:sequence>
+	</xs:complexType>
+	
+	<xs:complexType name="fanStateType">
+		<xs:annotation>
+			<xs:documentation>Definition of the power state</xs:documentation>
+		</xs:annotation>
+		<xs:sequence>
+			<xs:element name="speed" type="xs:double"></xs:element>
+			<xs:element name="airThroughput" type="xs:double"></xs:element>
+			<xs:element name="power" type="xs:double" minOccurs="0"></xs:element>
 		</xs:sequence>
 	</xs:complexType>
