From 47709dd3547d4aeac2a837249dfc1b7f42306426 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Mon, 1 Aug 2022 21:08:14 +0200
Subject: [PATCH] updating XML Schema: more vehicle information in CIF, input
 signature in MRF and CIF

---
 .../XSD/VectoDeclarationDefinitions.2.4.xsd   |  20 +-
 .../Resources/XSD/VectoOutputCustomer.0.9.xsd | 550 ++++++++++++++++--
 .../XSD/VectoOutputManufacturer.0.9.xsd       |  77 ++-
 .../XSD/VectoOutputMultistep.0.1.xsd          |  25 +-
 VectoCore/VectoCore/Utils/XMLHelper.cs        |  16 +-
 5 files changed, 609 insertions(+), 79 deletions(-)

diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
index fe687e0866..8246076603 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
@@ -405,6 +405,11 @@ Changelog:
 							<xs:sequence>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemGen_Conventional_SequenceGroup"/>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+								<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P316 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
 							</xs:sequence>
 						</xs:complexType>
 					</xs:element>
@@ -567,6 +572,11 @@ Changelog:
 							<xs:sequence>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemGen_HEV-Px_SequenceGroup"/>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+								<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P316 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
 							</xs:sequence>
 						</xs:complexType>
 					</xs:element>
@@ -728,6 +738,11 @@ Changelog:
 							<xs:sequence>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemGen_HEV-S_SequenceGroup"/>
 								<xs:group ref="v2.4:BusAuxPneumaticSystemConsumerSequenceGroup"/>
+								<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
+									<xs:annotation>
+										<xs:documentation>P316 - bool</xs:documentation>
+									</xs:annotation>
+								</xs:element>
 							</xs:sequence>
 						</xs:complexType>
 					</xs:element>
@@ -3202,11 +3217,6 @@ Changelog:
 					</xs:restriction>
 				</xs:simpleType>
 			</xs:element>
-			<xs:element name="PneumaticSCRReagentDosing" type="xs:boolean">
-				<xs:annotation>
-					<xs:documentation>P316 - bool</xs:documentation>
-				</xs:annotation>
-			</xs:element>
 		</xs:sequence>
 	</xs:group>
 	<xs:group name="BusAuxPneumaticSystemGen_Conventional_SequenceGroup">
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
index 72afeec15a..ec384f2f81 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputCustomer.0.9.xsd
@@ -13,6 +13,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Conventional_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -45,6 +46,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_Px_IHPC_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -77,6 +79,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_S2_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -109,6 +112,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_S3_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -141,6 +145,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_S4_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -173,6 +178,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="HEV_IEPC_S_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -205,6 +211,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="PEV_E2_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -237,6 +244,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="PEV_E3_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -269,6 +277,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="PEV_E4_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -301,6 +310,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="PEV_IEPC_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -333,6 +343,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Conventional_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -364,7 +375,8 @@
 		<xs:complexContent>
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
-					<xs:element name="Vehicle" type="HEV_CompletedBusVehicleType"/>
+					<xs:element name="Vehicle" type="Abstract_HEV_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -396,7 +408,8 @@
 		<xs:complexContent>
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
-					<xs:element name="Vehicle" type="PEV_CompletedBusVehicleType"/>
+					<xs:element name="Vehicle" type="Abstract_PEV_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -429,6 +442,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Exempted_LorryVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -461,6 +475,7 @@
 			<xs:extension base="out:AbstractVectoOutputCustomerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="Exempted_CompletedBusVehicleType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="ResultDataSignature" type="v1.0:SignatureType">
 						<xs:annotation>
 							<xs:documentation>II.3</xs:documentation>
@@ -493,7 +508,7 @@
 		<xs:sequence>
 			<xs:group ref="GeneralVehicleSequenceGroup"/>
 			<xs:group ref="LorryGeneralVehicleSequenceGroup"/>
-			<xs:group ref="Conventional_LorryVehicleSequenceGroup"/>
+			<xs:group ref="WHR_DualFuelSequenceGroup"/>
 			<xs:element name="ADAS" type="ConventionalADASType"/>
 			<xs:group ref="EngineGroup"/>
 			<xs:group ref="TransmissionGroup"/>
@@ -538,6 +553,7 @@
 			<xs:group ref="EngineGroup"/>
 			<xs:group ref="ElectricMachineGroup"/>
 			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:element name="Retarder"/>
 			<xs:element name="AxleRatio"/>
 			<xs:group ref="AxleWheelsGroup"/>
@@ -551,6 +567,7 @@
 			<xs:group ref="EngineGroup"/>
 			<xs:group ref="ElectricMachineGroup"/>
 			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:group ref="AxleWheelsGroup"/>
 			<xs:group ref="LorryAuxGroup"/>
 		</xs:sequence>
@@ -562,6 +579,7 @@
 			<xs:group ref="EngineGroup"/>
 			<xs:group ref="ElectricMachineGroup"/>
 			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:element name="Retarder"/>
 			<xs:element name="AxleRatio" minOccurs="0"/>
 			<xs:group ref="AxleWheelsGroup"/>
@@ -587,6 +605,7 @@
 			<xs:element name="ADAS" type="PEVADASType"/>
 			<xs:group ref="ElectricMachineGroup"/>
 			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:element name="Retarder"/>
 			<xs:element name="AxleRatio"/>
 			<xs:group ref="AxleWheelsGroup"/>
@@ -599,6 +618,7 @@
 			<xs:element name="ADAS" type="PEVADASType"/>
 			<xs:group ref="ElectricMachineGroup"/>
 			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:group ref="AxleWheelsGroup"/>
 			<xs:group ref="LorryAuxGroup"/>
 		</xs:sequence>
@@ -609,6 +629,7 @@
 			<xs:element name="ADAS" type="PEVADASType"/>
 			<xs:group ref="ElectricMachineGroup"/>
 			<xs:group ref="REESSGroup"/>
+			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:element name="Retarder"/>
 			<xs:element name="AxleRatio" minOccurs="0"/>
 			<xs:group ref="AxleWheelsGroup"/>
@@ -617,29 +638,182 @@
 	</xs:complexType>
 	<xs:complexType name="Conventional_CompletedBusVehicleType">
 		<xs:sequence>
-			<xs:group ref="CompletedBusVehicleTypeGroup"/>
+			<xs:group ref="ConventionalCompletedBusVehicleTypeGroup"/>
 			<xs:element name="ADAS" type="ConventionalADASType"/>
-			<xs:group ref="CompletedBusAuxGroup"/>
+			<xs:group ref="EngineGroup"/>
+			<xs:group ref="TransmissionGroup"/>
+			<xs:element name="Retarder" type="xs:boolean"/>
+			<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+			<xs:group ref="AxleWheelsGroup"/>
+			<xs:group ref="ConventionalCompletedBusAuxGroup"/>
 		</xs:sequence>
 	</xs:complexType>
-	<xs:complexType name="HEV_CompletedBusVehicleType">
-		<xs:sequence>
-			<xs:group ref="CompletedBusVehicleTypeGroup"/>
-			<xs:element name="ADAS" type="HEVADASType"/>
-			<xs:group ref="CompletedBusAuxGroup"/>
-		</xs:sequence>
+	<xs:complexType name="HEV_Px_IHPC_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:group ref="TransmissionGroup"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Px_IHPC_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
 	</xs:complexType>
-	<xs:complexType name="PEV_CompletedBusVehicleType">
-		<xs:sequence>
-			<xs:group ref="CompletedBusVehicleTypeGroup"/>
-			<xs:element name="ADAS" type="PEVADASType"/>
-			<xs:group ref="CompletedBusAuxGroup"/>
-		</xs:sequence>
+	<xs:complexType name="HEV_S2_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:group ref="TransmissionGroup"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Sx_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_S3_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Sx_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_S4_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Sx_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="HEV_IEPC-S_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_HEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="HEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="HEVADASType"/>
+					<xs:group ref="EngineGroup"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType" minOccurs="0"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="HEV_Sx_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E2_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_PEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="PEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="PEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="PEVADASType"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:group ref="TransmissionGroup"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="PEV_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E3_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_PEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="PEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="PEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="PEVADASType"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="PEV_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_E4_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_PEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="PEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="PEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="PEVADASType"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="PEV_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="PEV_IEPC_CompletedBusVehicleType">
+		<xs:complexContent>
+			<xs:extension base="Abstract_PEV_CompletedBusVehicleType">
+				<xs:sequence>
+					<xs:group ref="PEVCompletedBusVehicleTypeGroup"/>
+					<xs:group ref="PEV_CompletedBusArchitectureGroup"/>
+					<xs:element name="ADAS" type="PEVADASType"/>
+					<xs:group ref="ElectricMachineGroup"/>
+					<xs:group ref="REESSGroup"/>
+					<xs:element name="NrOfGears" type="xs:int"/>
+					<xs:element name="Retarder" type="xs:boolean"/>
+					<xs:element name="AxleRatio" type="v1.0:AxlegearRatioType" minOccurs="0"/>
+					<xs:group ref="AxleWheelsGroup"/>
+					<xs:group ref="PEV_CompletedBusAuxGroup"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
 	</xs:complexType>
 	<xs:complexType name="Exempted_LorryVehicleType">
 		<xs:sequence>
 			<xs:group ref="GeneralVehicleSequenceGroup"/>
-			<xs:element name="VehicleGroupCO2"/>
 			<xs:element name="Manufacturer"/>
 			<xs:element name="ManufacturerAddress"/>
 			<xs:element name="Model"/>
@@ -651,7 +825,7 @@
 	</xs:complexType>
 	<xs:complexType name="Exempted_CompletedBusVehicleType">
 		<xs:sequence>
-			<xs:group ref="CompletedBusVehicleTypeGroup"/>
+			<xs:group ref="HEVCompletedBusVehicleTypeGroup"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:simpleType name="RatedPowerType">
@@ -675,11 +849,11 @@
 				</xs:complexType>
 			</xs:element>
 			<xs:element name="VehicleGroup" type="xs:string"/>
+			<xs:element name="VehicleGroupCO2" type="xs:string"/>
 		</xs:sequence>
 	</xs:group>
 	<xs:group name="LorryGeneralVehicleSequenceGroup">
 		<xs:sequence>
-			<xs:element name="VehicleGroupCO2"/>
 			<xs:element name="Manufacturer" type="v1.0:ManufacturerType"/>
 			<xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType"/>
 			<xs:element name="Model" type="v1.0:ModelType"/>
@@ -699,7 +873,7 @@
 			<xs:element name="HybridElectricHDV" type="v1.0:HybridElectricHDVType"/>
 		</xs:sequence>
 	</xs:group>
-	<xs:group name="Conventional_LorryVehicleSequenceGroup">
+	<xs:group name="WHR_DualFuelSequenceGroup">
 		<xs:sequence>
 			<xs:element name="WasteHeatRecovery" type="xs:boolean"/>
 			<xs:element name="DualFuelVehicle" type="xs:boolean"/>
@@ -707,14 +881,14 @@
 	</xs:group>
 	<xs:group name="HEV_VehicleSequenceGroup">
 		<xs:sequence>
-			<xs:group ref="Conventional_LorryVehicleSequenceGroup"/>
+			<xs:group ref="WHR_DualFuelSequenceGroup"/>
 			<xs:element name="HEVArchitecture"/>
 			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
 			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
 				<xs:complexType>
 					<xs:simpleContent>
-						<xs:extension base="xs:int">
-							<xs:attribute name="unit" type="out:PowerUnitType" use="required"/>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="PowerUnitType" use="required"/>
 						</xs:extension>
 					</xs:simpleContent>
 				</xs:complexType>
@@ -725,7 +899,11 @@
 		<xs:sequence>
 			<xs:element name="PEVArchitecture"/>
 			<xs:element name="OffVehicleChargingCapability"/>
-			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0"/>
+			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
+				<xs:complexType>
+					<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+				</xs:complexType>
+			</xs:element>
 		</xs:sequence>
 	</xs:group>
 	<xs:group name="HEV_LorryVehicleTypeGroup">
@@ -742,7 +920,7 @@
 			<xs:group ref="PEV_VehicleSequenceGroup"/>
 		</xs:sequence>
 	</xs:group>
-	<xs:group name="CompletedBusVehicleTypeGroup">
+	<xs:group name="ConventionalCompletedBusVehicleTypeGroup">
 		<xs:sequence>
 			<xs:group ref="GeneralVehicleSequenceGroup"/>
 			<xs:sequence>
@@ -762,13 +940,78 @@
 					</xs:complexType>
 				</xs:element>
 			</xs:sequence>
+			<xs:element name="Model" type="xs:string"/>
 			<xs:sequence>
-				<xs:element name="CorrectedActualMass"/>
-				<xs:element name="ZeroEmissionVehicle"/>
-				<xs:element name="HybridElectricHDV"/>
-				<xs:element name="ClassBus"/>
-				<xs:element name="TotalNumberOfPassengers"/>
-				<xs:element name="VehicleTypeApprovalNumber" minOccurs="0"/>
+				<xs:element name="CorrectedActualMass" type="xs:int"/>
+				<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+				<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+				<xs:group ref="WHR_DualFuelSequenceGroup"/>
+				<xs:element name="ClassBus" type="xs:string"/>
+				<xs:element name="TotalNumberOfPassengers" type="xs:int"/>
+				<xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEVCompletedBusVehicleTypeGroup">
+		<xs:sequence>
+			<xs:group ref="GeneralVehicleSequenceGroup"/>
+			<xs:sequence>
+				<xs:element name="Manufacturers">
+					<xs:complexType>
+						<xs:sequence maxOccurs="unbounded">
+							<xs:element name="Step">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="Manufacturer"/>
+										<xs:element name="ManufacturerAddress"/>
+									</xs:sequence>
+									<xs:attribute name="stepCount" type="xs:int"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:element name="Model" type="xs:string"/>
+			<xs:sequence>
+				<xs:element name="CorrectedActualMass" type="xs:int"/>
+				<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+				<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+				<xs:group ref="WHR_DualFuelSequenceGroup"/>
+				<xs:element name="ClassBus" type="xs:string"/>
+				<xs:element name="TotalNumberOfPassengers" type="xs:int"/>
+				<xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/>
+			</xs:sequence>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEVCompletedBusVehicleTypeGroup">
+		<xs:sequence>
+			<xs:group ref="GeneralVehicleSequenceGroup"/>
+			<xs:sequence>
+				<xs:element name="Manufacturers">
+					<xs:complexType>
+						<xs:sequence maxOccurs="unbounded">
+							<xs:element name="Step">
+								<xs:complexType>
+									<xs:sequence>
+										<xs:element name="Manufacturer"/>
+										<xs:element name="ManufacturerAddress"/>
+									</xs:sequence>
+									<xs:attribute name="stepCount" type="xs:int"/>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:complexType>
+				</xs:element>
+			</xs:sequence>
+			<xs:element name="Model" type="xs:string"/>
+			<xs:sequence>
+				<xs:element name="CorrectedActualMass" type="xs:int"/>
+				<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+				<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+				<xs:element name="ClassBus" type="xs:string"/>
+				<xs:element name="TotalNumberOfPassengers" type="xs:int"/>
+				<xs:element name="VehicleTypeApprovalNumber" type="xs:string" minOccurs="0"/>
 			</xs:sequence>
 		</xs:sequence>
 	</xs:group>
@@ -808,8 +1051,8 @@
 	</xs:group>
 	<xs:group name="TransmissionGroup">
 		<xs:sequence>
-			<xs:element name="TransmissionValues"/>
-			<xs:element name="TransmissionType" type="v1.0:GearboxTransmissionTypeType"/>
+			<xs:element name="TransmissionValues" type="xs:string"/>
+			<xs:element name="TransmissionType" type="v2.3:GearboxTransmissionTypeType"/>
 			<xs:element name="NrOfGears" type="xs:int"/>
 		</xs:sequence>
 	</xs:group>
@@ -820,7 +1063,7 @@
 				<xs:complexType>
 					<xs:sequence>
 						<xs:element name="TyreDimension" type="v2.3:TyreDimensionType"/>
-						<xs:element name="FuelEfficiencyClass"/>
+						<xs:element name="FuelEfficiencyClass" type="xs:string"/>
 						<xs:element name="TyreCertificationNumber" type="v1.0:CertificationNumberType"/>
 					</xs:sequence>
 					<xs:attribute name="axleNumber"/>
@@ -861,7 +1104,7 @@
 				<xs:complexType>
 					<xs:simpleContent>
 						<xs:extension base="xs:int">
-							<xs:attribute name="unit" type="out:StorageCapacityUnitType" use="required"/>
+							<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
 						</xs:extension>
 					</xs:simpleContent>
 				</xs:complexType>
@@ -870,7 +1113,7 @@
 				<xs:complexType>
 					<xs:simpleContent>
 						<xs:extension base="xs:int">
-							<xs:attribute name="unit" type="out:StorageCapacityUnitType" use="required"/>
+							<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
 						</xs:extension>
 					</xs:simpleContent>
 				</xs:complexType>
@@ -882,14 +1125,196 @@
 			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
 		</xs:sequence>
 	</xs:group>
-	<xs:group name="CompletedBusAuxGroup">
+	<xs:group name="ConventionalCompletedBusAuxGroup">
 		<xs:sequence>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
+			<xs:element name="ElectricSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AlternatorTechnology"/>
+						<xs:sequence minOccurs="0">
+							<xs:element name="MaxAlternatorPower">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+							<xs:element name="ElectricStorageCapacity">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="PneumaticSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SmartCompressionSystem" type="xs:boolean"/>
+						<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
 			<xs:element name="HVAC">
 				<xs:complexType>
 					<xs:sequence>
-						<xs:element name="SystemConfiguration"/>
-						<xs:element name="AuxiliaryHeaterPower"/>
-						<xs:element name="DoubleGlazing"/>
+						<xs:element name="SystemConfiguration" type="xs:int"/>
+						<xs:element name="AuxiliaryHeaterPower">
+							<xs:complexType>
+								<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="DoubleGlazing" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV_Px_IHPC_CompletedBusAuxGroup">
+		<xs:sequence>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
+			<xs:element name="ElectricSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AlternatorTechnology"/>
+						<xs:sequence minOccurs="0">
+							<xs:element name="MaxAlternatorPower">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+							<xs:element name="ElectricStorageCapacity">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="PneumaticSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SmartCompressionSystem" type="xs:boolean"/>
+						<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="HVAC">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SystemConfiguration" type="xs:int"/>
+						<xs:element name="AuxiliaryHeaterPower">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:int">
+										<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="DoubleGlazing" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="HEV_Sx_CompletedBusAuxGroup">
+		<xs:sequence>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
+			<xs:element name="ElectricSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="AlternatorTechnology"/>
+						<xs:sequence minOccurs="0">
+							<xs:element name="MaxAlternatorPower">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+							<xs:element name="ElectricStorageCapacity">
+								<xs:complexType>
+									<xs:simpleContent>
+										<xs:extension base="xs:int">
+											<xs:attribute name="unit" type="EnergyUnitType" use="required"/>
+										</xs:extension>
+									</xs:simpleContent>
+								</xs:complexType>
+							</xs:element>
+						</xs:sequence>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="PneumaticSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="HVAC">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SystemConfiguration" type="xs:int"/>
+						<xs:element name="AuxiliaryHeaterPower">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:int">
+										<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="DoubleGlazing" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV_CompletedBusAuxGroup">
+		<xs:sequence>
+			<xs:element name="SteeringPumpTechnology" type="v2.4:AuxSPTechnologyLorryType"/>
+			<xs:element name="PneumaticSystem">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SmartRegenerationSystem" type="xs:boolean"/>
+					</xs:sequence>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="HVAC">
+				<xs:complexType>
+					<xs:sequence>
+						<xs:element name="SystemConfiguration" type="xs:int"/>
+						<xs:element name="AuxiliaryHeaterPower">
+							<xs:complexType>
+								<xs:simpleContent>
+									<xs:extension base="xs:int">
+										<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+									</xs:extension>
+								</xs:simpleContent>
+							</xs:complexType>
+						</xs:element>
+						<xs:element name="DoubleGlazing" type="xs:boolean"/>
 					</xs:sequence>
 				</xs:complexType>
 			</xs:element>
@@ -1207,6 +1632,17 @@
 			<xs:enumeration value="km"/>
 		</xs:restriction>
 	</xs:simpleType>
+	<xs:simpleType name="PowerUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kW"/>
+			<xs:enumeration value="W"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="EnergyUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kWh"/>
+		</xs:restriction>
+	</xs:simpleType>
 	<xs:simpleType name="EnergyConsumptionUnitType">
 		<xs:restriction base="xs:string">
 			<xs:enumeration value="kWh/km"/>
@@ -1448,4 +1884,36 @@
 			<xs:element name="PredictiveCruiseControl" type="xs:boolean"/>
 		</xs:sequence>
 	</xs:group>
+	<xs:group name="HEV_CompletedBusArchitectureGroup">
+		<xs:sequence>
+			<xs:element name="HEVArchitecture" type="xs:string"/>
+			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
+			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:group name="PEV_CompletedBusArchitectureGroup">
+		<xs:sequence>
+			<xs:element name="PEVArchitecture" type="xs:string"/>
+			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
+			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="PowerUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:group>
+	<xs:complexType name="Abstract_HEV_CompletedBusVehicleType" abstract="true"/>
+	<xs:complexType name="Abstract_PEV_CompletedBusVehicleType" abstract="true"/>
 </xs:schema>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
index 0d9bd65c52..e706ecd5c7 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
@@ -15,6 +15,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:Conventional-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -42,6 +43,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-Px_IHPC-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -69,6 +71,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-S2-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -96,6 +99,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-S3-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -123,6 +127,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-S4-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -150,6 +155,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-IEPC-S-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -177,6 +183,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-E2-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -204,6 +211,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-E3-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -231,6 +239,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-E4-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -258,6 +267,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-IEPC-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -285,6 +295,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:Conventional-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -312,6 +323,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-Px_IHPC-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -339,6 +351,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-S2-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -366,6 +379,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-S3-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -393,6 +407,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-S4-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -420,6 +435,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-IEPC-S-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -447,6 +463,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-E2-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -474,6 +491,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-E3-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -501,6 +519,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-E4-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -528,6 +547,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-IEPC-PrimaryBus-VehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -555,6 +575,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:Conventional-CompletedBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -582,6 +603,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:HEV-CompletedBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -609,6 +631,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:PEV-CompletedBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -636,6 +659,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:Exempted-LorryVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -663,6 +687,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:Exempted-PrimaryBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -690,6 +715,7 @@
 			<xs:extension base="out:AbstractVectoOutputManufacturerDataType">
 				<xs:sequence>
 					<xs:element name="Vehicle" type="mrf:Exempted-CompletedBusVehicleOutputType"/>
+					<xs:element name="InputDataSignature" type="v1.0:SignatureType"/>
 					<xs:element name="Results" type="mrf:ResultsType"/>
 					<xs:element name="ApplicationInformation">
 						<xs:complexType>
@@ -750,7 +776,15 @@
 		</xs:annotation>
 		<xs:sequence>
 			<xs:element name="OffVehicleChargingCapability" type="xs:boolean"/>
-			<xs:element name="OffVehicleChargingMaxPower" type="xs:int" minOccurs="0"/>
+			<xs:element name="OffVehicleChargingMaxPower" minOccurs="0">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:double">
+							<xs:attribute name="unit" type="mrf:PowerUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
 		</xs:sequence>
 	</xs:group>
 	<xs:group name="ManufacturerGroup">
@@ -899,7 +933,7 @@
 	<xs:complexType name="HEV-Px_IHPC-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType"/>
+			<xs:element name="EngineTorqueLimitations" type="mrf:EngineTorqueLimitsType" minOccurs="0"/>
 			<xs:element name="Components" type="mrf:HEV-Px_IHPC-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
@@ -1343,14 +1377,14 @@
 	<xs:complexType name="AbstractREESSType" abstract="true"/>
 	<xs:complexType name="REESSSpecificationsType">
 		<xs:sequence>
-			<xs:sequence>
+			<xs:choice>
 				<xs:sequence maxOccurs="unbounded">
 					<xs:element name="Battery" type="mrf:BatteryType"/>
 				</xs:sequence>
-				<xs:sequence minOccurs="0" maxOccurs="unbounded">
-					<xs:element name="SuperCap" type="mrf:CapacitorType"/>
+				<xs:sequence>
+					<xs:element name="Capacitor" type="mrf:CapacitorType"/>
 				</xs:sequence>
-			</xs:sequence>
+			</xs:choice>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="CapacitorType">
@@ -1379,8 +1413,24 @@
 		<xs:sequence>
 			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
 			<xs:element name="NominalVoltage" type="xs:int"/>
-			<xs:element name="TotalStorageCapacity" type="xs:int"/>
-			<xs:element name="TotalUsableCapacityInSimulation" type="xs:int"/>
+			<xs:element name="TotalStorageCapacity">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="unit" type="mrf:EnergyUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
+			<xs:element name="TotalUsableCapacityInSimulation">
+				<xs:complexType>
+					<xs:simpleContent>
+						<xs:extension base="xs:int">
+							<xs:attribute name="unit" type="mrf:EnergyUnitType" use="required"/>
+						</xs:extension>
+					</xs:simpleContent>
+				</xs:complexType>
+			</xs:element>
 			<xs:element name="CertificationMethod"/>
 		</xs:sequence>
 	</xs:group>
@@ -1557,9 +1607,6 @@
 			<xs:element name="CertificationMethod"/>
 		</xs:sequence>
 	</xs:group>
-	<xs:group name="EngineTorqueLimitationsGroup">
-		<xs:sequence/>
-	</xs:group>
 	<!--Axles-->
 	<xs:complexType name="AxleGearType">
 		<xs:sequence>
@@ -1640,7 +1687,7 @@
 	<xs:complexType name="TransmissionType">
 		<xs:sequence>
 			<xs:group ref="mrf:ComponentCommonOutputGroup"/>
-			<xs:element name="Type" type="v1.0:GearboxTransmissionTypeType"/>
+			<xs:element name="Type" type="v2.3:GearboxTransmissionTypeType"/>
 			<xs:element name="NrOfGears" type="xs:int"/>
 			<xs:element name="FinalGearRatio" type="v1.0:GearboxGearRatioType"/>
 			<xs:element name="RetarderType" type="v1.0:RetarderTypeType"/>
@@ -1654,6 +1701,7 @@
 					<xs:simpleContent>
 						<xs:extension base="xs:int">
 							<xs:attribute name="Gear" type="xs:int" use="required"/>
+							<xs:attribute name="unit" type="mrf:PercentType" use="required"/>
 						</xs:extension>
 					</xs:simpleContent>
 				</xs:complexType>
@@ -2234,6 +2282,11 @@
 			<xs:enumeration value="W"/>
 		</xs:restriction>
 	</xs:simpleType>
+	<xs:simpleType name="EnergyUnitType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="kWh"/>
+		</xs:restriction>
+	</xs:simpleType>
 	<xs:simpleType name="SpeedUnitType">
 		<xs:restriction base="xs:token">
 			<xs:enumeration value="km/h"/>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
index 59dc7bd5c2..d13e58a557 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputMultistep.0.1.xsd
@@ -163,11 +163,7 @@
 			</xs:element>
 		</xs:sequence>
 	</xs:group>
-	<xs:complexType name="AbstractADCDataDeclarationType" abstract="true">
-		<xs:complexContent>
-			<xs:extension base="v1.0:AbstractAngledriveDataDeclarationType"/>
-		</xs:complexContent>
-	</xs:complexType>
+	<xs:complexType name="AbstractADCDataDeclarationType" abstract="true"/>
 	<xs:complexType name="AbstractAngledriveDataVIFType" abstract="true"/>
 	<xs:complexType name="AbstractAuxiliaryDataVIFType" abstract="true"/>
 	<xs:complexType name="AbstractAxlegearDataVIFType" abstract="true"/>
@@ -201,7 +197,6 @@
 	<xs:complexType name="ADCComponentDeclarationType">
 		<xs:sequence>
 			<xs:element name="Data" type="vif:AbstractADCDataDeclarationType"/>
-			<xs:element name="Signature" type="v2.0:SignatureType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="ADCDataDeclarationType">
@@ -243,13 +238,6 @@
 							<xs:documentation>P258 - enum</xs:documentation>
 						</xs:annotation>
 					</xs:element>
-					<xs:element name="TorqueLossMap">
-						<xs:complexType>
-							<xs:sequence minOccurs="4" maxOccurs="unbounded">
-								<xs:element name="Entry" type="v2.0:AngledriveLossMapEntryType"/>
-							</xs:sequence>
-						</xs:complexType>
-					</xs:element>
 				</xs:sequence>
 			</xs:extension>
 		</xs:complexContent>
@@ -1559,11 +1547,15 @@
 	<xs:complexType name="ElectricMachineSystemType">
 		<xs:sequence>
 			<xs:element name="Data" type="vif:AbstractElectricMachineSystemDataType"/>
-			<xs:element name="Signature" type="v2.0:SignatureType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="ElectricMachineType">
 		<xs:sequence>
+			<xs:element name="PowertrainPosition" type="v2.4:PowertrainPositionDriveType">
+				<xs:annotation>
+					<xs:documentation>P403 - enum</xs:documentation>
+				</xs:annotation>
+			</xs:element>
 			<xs:element name="Count">
 				<xs:annotation>
 					<xs:documentation>P404 - [-]</xs:documentation>
@@ -1594,11 +1586,6 @@
 					</xs:sequence>
 				</xs:complexType>
 			</xs:element>
-			<xs:element name="PowertrainPosition" type="v2.4:PowertrainPositionDriveType">
-				<xs:annotation>
-					<xs:documentation>P403 - enum</xs:documentation>
-				</xs:annotation>
-			</xs:element>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="EnergyConsumptionType">
diff --git a/VectoCore/VectoCore/Utils/XMLHelper.cs b/VectoCore/VectoCore/Utils/XMLHelper.cs
index baedeb0926..c774e82a75 100644
--- a/VectoCore/VectoCore/Utils/XMLHelper.cs
+++ b/VectoCore/VectoCore/Utils/XMLHelper.cs
@@ -97,6 +97,18 @@ namespace TUGraz.VectoCore.Utils
 			throw new NotImplementedException($"unknown unit '{unit}'");
 		}
 
+		public static object[] ValueAsUnit(this WattSecond energy, string unit, uint? decimals = 0)
+		{
+			switch (unit) {
+				case "kWh":
+					return GetValueAsUnit(energy?.ConvertToKiloWattHour(), unit, decimals);
+				case "Wh":
+					return GetValueAsUnit(energy?.ConvertToWattHour(), unit, decimals);
+			}
+
+			throw new NotImplementedException($"unknown unit '{unit}'");
+		}
+
 		public static object[] ValueAsUnit(this AmpereSecond capacity, string unit, uint? decimals = 0)
 		{
 			switch (unit)
@@ -159,7 +171,7 @@ namespace TUGraz.VectoCore.Utils
 			throw new NotImplementedException($"unknown unit '{unit}'");
 		}
 
-		public static object[] ValueAsUnit(double value, string unit, uint? decimals)
+		public static object[] ValueAsUnit(this double value, string unit, uint? decimals)
 		{
 			switch (unit) {
 				case "%": return GetValueAsUnit(value * 100, unit, decimals);
@@ -167,7 +179,7 @@ namespace TUGraz.VectoCore.Utils
 			}
 		}
 
-		private static object[] GetValueAsUnit(double? value, string unit, uint? decimals)
+		private static object[] GetValueAsUnit(this double? value, string unit, uint? decimals)
 		{
 			if (value == null) {
 				return new object[0];
-- 
GitLab