From 7bc27a15b5ca59e782d329cc30d04153d2452e95 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Mon, 14 Mar 2022 09:10:29 +0100
Subject: [PATCH] Correction in XML Schema for serial hybrids

---
 .../XSD/VectoDeclarationDefinitions.2.4.xsd   | 42 +++++++++++++++++--
 .../HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml    |  4 +-
 .../HeavyLorry/HEV-S_heavyLorry_S3.xml        |  4 +-
 .../HeavyLorry/HEV-S_heavyLorry_S4.xml        |  4 +-
 .../MediumLorry/HEV-S_mediumLorry_AMT_S2.xml  |  4 +-
 .../MediumLorry/HEV-S_mediumLorry_S3.xml      |  4 +-
 .../MediumLorry/HEV-S_mediumLorry_S4.xml      |  4 +-
 .../PrimaryBus/HEV-S_primaryBus_AMT_S2.xml    |  4 +-
 .../PrimaryBus/HEV-S_primaryBus_S3.xml        |  4 +-
 .../PrimaryBus/HEV-S_primaryBus_S4.xml        |  4 +-
 10 files changed, 47 insertions(+), 31 deletions(-)

diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
index 7d6590cec7..c88ddcc9df 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.4.xsd
@@ -90,6 +90,11 @@
 		</xs:complexContent>
 	</xs:complexType>
 	<xs:complexType name="AbstractElectricMotorVehicleTorqueLimitsDeclarationType" abstract="true"/>
+	<xs:complexType name="AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" abstract="true">
+		<xs:complexContent>
+			<xs:extension base="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType"/>
+		</xs:complexContent>
+	</xs:complexType>
 	<xs:complexType name="AbstractPTODataType" abstract="true">
 		<xs:complexContent>
 			<xs:extension base="v2.0:AbstractPTODataType"/>
@@ -1374,11 +1379,40 @@
 			<xs:element name="ADC" type="v2.3:ADCComponentDeclarationType" minOccurs="0"/>
 		</xs:sequence>
 	</xs:complexType>
+	<xs:complexType name="ElectricMachineTorqueLimitsSerialHybridType">
+		<xs:complexContent>
+			<xs:extension base="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType">
+				<xs:sequence>
+					<xs:element name="ElectricMachine" maxOccurs="2">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Position" type="v2.4:PowertrainPositionType"/>
+								<xs:element name="VoltageLevel" minOccurs="2" maxOccurs="unbounded">
+									<xs:complexType>
+										<xs:sequence>
+											<xs:element name="Voltage">
+												<xs:simpleType>
+													<xs:restriction base="xs:int">
+														<xs:minExclusive value="0"/>
+													</xs:restriction>
+												</xs:simpleType>
+											</xs:element>
+											<xs:element name="MaxTorqueCurve" type="v2.3:ElectricMachineSystemMaxTorqueCurveType"/>
+										</xs:sequence>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
 	<xs:complexType name="ElectricMachineTorqueLimitsType">
 		<xs:complexContent>
 			<xs:extension base="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType">
 				<xs:sequence>
-					<xs:element name="ElectricMachine" maxOccurs="unbounded">
+					<xs:element name="ElectricMachine">
 						<xs:complexType>
 							<xs:sequence>
 								<xs:element name="Position" type="v2.4:PowertrainPositionType"/>
@@ -2081,7 +2115,7 @@
 					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
-					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0" maxOccurs="2"/>
+					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_LorryDeclarationType"/>
 				</xs:sequence>
 			</xs:extension>
@@ -2106,7 +2140,7 @@
 					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
-					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0" maxOccurs="2"/>
+					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_LorryDeclarationType"/>
 				</xs:sequence>
 			</xs:extension>
@@ -2141,7 +2175,7 @@
 					<xs:group ref="v2.4:Vehicle_xEV-Parameters_SequenceGroup"/>
 					<xs:element name="ADAS" type="v2.4:Abstract_ADAS_HEVType"/>
 					<xs:element name="TorqueLimits" type="v2.0:AbstractTorqueLimitsType" minOccurs="0"/>
-					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsDeclarationType" minOccurs="0" maxOccurs="2"/>
+					<xs:element name="ElectricMotorTorqueLimits" type="v2.4:AbstractElectricMotorVehicleTorqueLimitsSerialHybridDeclarationType" minOccurs="0"/>
 					<xs:element name="Components" type="v2.4:Abstract_Components_HEV-Sx_PrimaryBusDeclarationType"/>
 				</xs:sequence>
 			</xs:extension>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml
index 144e02970a..a239e6825c 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_AMT_S2.xml
@@ -34,7 +34,7 @@
 			<!-- optional -->
 			<v2.0:Entry gear="9" maxTorque="2000"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>2</Position>
@@ -53,8 +53,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml
index 12524b9c8a..cb9cfbff3f 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S3.xml
@@ -34,7 +34,7 @@
 			<!-- optional -->
 			<v2.0:Entry gear="9" maxTorque="2000"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>3</Position>
@@ -53,8 +53,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml
index 0e0407f3d1..ca7327394b 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/HeavyLorry/HEV-S_heavyLorry_S4.xml
@@ -34,7 +34,7 @@
 			<!-- optional -->
 			<v2.0:Entry gear="9" maxTorque="2000"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="v2.4:ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>4</Position>
@@ -53,8 +53,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="v2.4:ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml
index 40178220ff..2a93fae8d4 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_AMT_S2.xml
@@ -30,7 +30,7 @@
 			<!-- optional -->
 			<v2.0:Entry gear="9" maxTorque="2000"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>2</Position>
@@ -49,8 +49,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml
index 97f8be8d0f..44bf8d19d8 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S3.xml
@@ -30,7 +30,7 @@
 			<!-- optional -->
 			<v2.0:Entry gear="9" maxTorque="2000"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>3</Position>
@@ -49,8 +49,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml
index 49eac0f157..195d02d9c7 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/MediumLorry/HEV-S_mediumLorry_S4.xml
@@ -30,7 +30,7 @@
 			<!-- optional -->
 			<v2.0:Entry gear="9" maxTorque="2000"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>4</Position>
@@ -49,8 +49,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml
index 0c6661425a..5ec6b24a7d 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_AMT_S2.xml
@@ -30,7 +30,7 @@
 			<v2.0:Entry gear="1" maxTorque="2500"/>
 			<v2.0:Entry gear="12" maxTorque="1900"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>2</Position>
@@ -49,8 +49,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml
index f1aeb455c6..7c2883114d 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S3.xml
@@ -26,7 +26,7 @@
 			<!-- optional -->
 			<v2.0:Entry gear="9" maxTorque="2000"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>3</Position>
@@ -45,8 +45,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml
index 19774aabcf..8b7795992b 100644
--- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml
+++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/PrimaryBus/HEV-S_primaryBus_S4.xml
@@ -26,7 +26,7 @@
 			<!-- optional -->
 			<v2.0:Entry gear="9" maxTorque="2000"/>
 		</TorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
+		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsSerialHybridType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>4</Position>
@@ -45,8 +45,6 @@
 					</MaxTorqueCurve>
 				</VoltageLevel>
 			</ElectricMachine>
-		</ElectricMotorTorqueLimits>
-		<ElectricMotorTorqueLimits xsi:type="ElectricMachineTorqueLimitsType">
 			<!-- optional -->
 			<ElectricMachine>
 				<Position>GEN</Position>
-- 
GitLab