From 87c4b1867f8920cf439e7e08eab4d0991f453d1c Mon Sep 17 00:00:00 2001
From: haraldmartini <harald.martini@student.tugraz.at>
Date: Thu, 16 Dec 2021 13:08:42 +0100
Subject: [PATCH] introduced seperate component types for each vehicle

---
 .../XSD/VectoOutputManufacturer.0.9.xsd       | 362 +++++++++---------
 1 file changed, 172 insertions(+), 190 deletions(-)

diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
index 179797d146..3868e79624 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputManufacturer.0.9.xsd
@@ -434,285 +434,115 @@
 	<xs:complexType name="HEV-Px_IHPC-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components" type="mrf:ComponentsType"/>
+			<xs:element name="Components" type="mrf:HEV-Px_IHPC-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-S2-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Transmission" type="mrf:TransmissionType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
-						<xs:element name="AngleDrive" type="mrf:AngledriveType" minOccurs="0"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-S2-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-S3-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-S3-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-S4-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-S4-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-IEPC-S-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="Axles" type="mrf:AxlesType" minOccurs="0"/>
-						<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-IEPC-S-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="PEV-E2-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Transmission" type="mrf:TransmissionType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:PEV-E2-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="PEV-E3-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:PEV-E3-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="PEV-E4-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:PEV-E4-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="PEV-IEPC-LorryVehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:PEV-LorryVehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="Axles" type="mrf:AxlesType" minOccurs="0"/>
-						<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:PEV-IEPC-LorryComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="Conventional-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:Conventional-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Transmission" type="mrf:TransmissionType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
-						<xs:element name="AngleDrive" type="mrf:AngledriveType" minOccurs="0"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:Conventional-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-Px_IHPC-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Transmission" type="mrf:TransmissionType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
-						<xs:element name="AngleDrive" type="mrf:AngledriveType" minOccurs="0"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-Px_IHPC-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-S2-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Transmission" type="mrf:TransmissionType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
-						<xs:element name="AngleDrive" type="mrf:AngledriveType" minOccurs="0"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-S2-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-S3-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-S3-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-S4-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-S4-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="HEV-IEPC-S-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:HEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Engine" type="mrf:EngineOutputType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="Axles" type="mrf:AxlesType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:HEV-IEPC-S-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="PEV-E2-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Transmission" type="mrf:TransmissionType"/>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:PEV-E2-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="PEV-E3-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="Axles" type="mrf:AxlesType"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:PEV-E3-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="PEV-E4-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:PEV-E4-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="PEV-IEPC-PrimaryBus-VehicleOutputType">
 		<xs:sequence>
 			<xs:group ref="mrf:PEV-PrimaryBus-VehicleOutputTypeGroup"/>
-			<xs:element name="Components">
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="Retarder" type="mrf:RetarderType"/>
-						<xs:element name="Axles" type="mrf:AxlesType" minOccurs="0"/>
-						<xs:element name="Tyres" type="mrf:TyresOutputType"/>
-					</xs:sequence>
-				</xs:complexType>
-			</xs:element>
+			<xs:element name="Components" type="mrf:PEV-IEPC-PrimaryBusComponentsType"/>
 		</xs:sequence>
 	</xs:complexType>
 	<xs:complexType name="Conventional-CompletedBusVehicleOutputType">
@@ -1048,7 +878,7 @@
 	<xs:simpleType name="StorageCapacityType">
 		<xs:restriction base="xs:double"/>
 	</xs:simpleType>
-	<xs:complexType name="ComponentsType">
+	<xs:complexType name="HEV-Px_IHPC-LorryComponentsType">
 		<xs:sequence>
 			<xs:element name="Engine" type="mrf:EngineOutputType"/>
 			<xs:element name="Transmission" type="mrf:TransmissionType"/>
@@ -1142,4 +972,156 @@
 			<xs:element name="DoorDriveTechnology" type="v2.10.2:DoorDriveTechnologyType"/>
 		</xs:sequence>
 	</xs:group>
+	<xs:complexType name="HEV-S2-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="AngleDrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S3-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S4-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-IEPC-S-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axles" type="mrf:AxlesType" minOccurs="0"/>
+			<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E2-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E3-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E4-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-IEPC-LorryComponentsType">
+		<xs:sequence>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axles" type="mrf:AxlesType" minOccurs="0"/>
+			<xs:element name="Airdrag" type="mrf:AirdragType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="Conventional-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="AngleDrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-Px_IHPC-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="AngleDrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S2-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="AngleDrive" type="mrf:AngledriveType" minOccurs="0"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S3-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-S4-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="HEV-IEPC-S-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Engine" type="mrf:EngineOutputType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axles" type="mrf:AxlesType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E2-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Transmission" type="mrf:TransmissionType"/>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="TorqueConverter" type="mrf:TorqueConverterType" minOccurs="0"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E3-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axles" type="mrf:AxlesType"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-E4-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PEV-IEPC-PrimaryBusComponentsType">
+		<xs:sequence>
+			<xs:element name="Retarder" type="mrf:RetarderType"/>
+			<xs:element name="Axles" type="mrf:AxlesType" minOccurs="0"/>
+			<xs:element name="Tyres" type="mrf:TyresOutputType"/>
+		</xs:sequence>
+	</xs:complexType>
 </xs:schema>
-- 
GitLab