From c9457ee17182137f220a6940fcf07cceed7c7ab0 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 28 Jul 2021 11:57:28 +0200
Subject: [PATCH] first draft of schema for electric components

---
 .../XSD/VectoDeclarationDefinitions.2.0.xsd   |   2 +-
 ...larationDefinitions.2.9_xEV_Components.xsd | 621 ++++++++++++++++++
 .../XSD/VectoDeclarationDefinitions.xsd       |   1 +
 VectoCore/VectoXML.spp                        |   1 +
 4 files changed, 624 insertions(+), 1 deletion(-)
 create mode 100644 VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.9_xEV_Components.xsd

diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.0.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.0.xsd
index 2862c5962a..1cb148e1cd 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.0.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.0.xsd
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) -->
+<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) -->
 <?xml-stylesheet type="text/xsl" href="../RenderTable.xslt"?>
 <xs:schema xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vectoParam="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
 	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.9_xEV_Components.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.9_xEV_Components.xsd
new file mode 100644
index 0000000000..184873449f
--- /dev/null
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.9_xEV_Components.xsd
@@ -0,0 +1,621 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Markus Quaritsch (Technische Universität Graz) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vectoParam="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.4" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.9="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
+	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" schemaLocation="VectoDeclarationDefinitions.1.0.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" schemaLocation="VectoDeclarationDefinitions.2.0.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" schemaLocation="VectoDeclarationDefinitions.2.1.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3_DEV.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" schemaLocation="VectoDeclarationDefinitions.2.6_Buses.xsd"/>
+	<xs:complexType name="AbstractElectricMachineSystemDataType" abstract="true">
+		<xs:complexContent>
+			<xs:extension base="v1.0:VectoSimulationComponent"/>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AbstractElectricMachineSystemVoltageLevelType" abstract="true"/>
+	<xs:complexType name="AbstractIEPCDataType" abstract="true">
+		<xs:complexContent>
+			<xs:extension base="v1.0:VectoSimulationComponent"/>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="AbstractIEPCGearsDeclarationType" abstract="true"/>
+	<xs:complexType name="AbstractREESSDataType" abstract="true">
+		<xs:complexContent>
+			<xs:extension base="v1.0:VectoSimulationComponent"/>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="BatterySystemCurrentLimitsEntryType">
+		<xs:attribute name="SoC" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+					<xs:maxInclusive value="100.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="maxChagingCurrent" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="maxDischargingCurrent" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="BatterySystemDataType">
+		<xs:complexContent>
+			<xs:extension base="v2.9:AbstractREESSDataType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P200</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P201</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType">
+						<xs:annotation>
+							<xs:documentation>P261</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P203</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P204</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="BatteryType" type="v2.9:BatteryTypeType"/>
+					<xs:element name="RatedCapacity">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="ConnectorsSubsystemsIncluded" type="xs:boolean"/>
+					<xs:element name="JunctionboxIncluded" type="xs:boolean"/>
+					<xs:element name="TestingTemperature" type="xs:int"/>
+					<xs:element name="OCV">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:BatterySystemOCVEntryType" minOccurs="2" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="InternalResistance">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:BatterySystemInternalResistanceEntryType" minOccurs="2" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="CurrentLimits">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:BatterySystemCurrentLimitsEntryType" minOccurs="2" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="BatterySystemInternalResistanceEntryType">
+		<xs:attribute name="SoC" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+					<xs:maxInclusive value="100.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="R_2" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minExclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="R_10" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minExclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="R_20" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minExclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="R_120">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minExclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="BatterySystemOCVEntryType">
+		<xs:attribute name="SoC" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+					<xs:maxInclusive value="100.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="OCV" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minExclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="CapacitorDataType">
+		<xs:complexContent>
+			<xs:extension base="v2.9:AbstractREESSDataType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P200</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P201</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType">
+						<xs:annotation>
+							<xs:documentation>P261</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P203</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P204</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationMethod" type="v2.9:CertificationMethodType"/>
+					<xs:element name="Capacitance">
+						<xs:simpleType>
+							<xs:restriction base="xs:int">
+								<xs:minExclusive value="0"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="InternalResistance">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="MinVoltage">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minInclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="MaxVoltage">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="MaxChargingCurrent">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="MaxDischargingCurrent">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="TestingTemperature" type="xs:int"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemComponentDeclarationType">
+		<xs:sequence>
+			<xs:element name="Data" type="v2.9:AbstractElectricMachineSystemDataType"/>
+			<xs:element name="Signature" type="v2.0:SignatureType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemConditioningEntryType">
+		<xs:attribute name="coolantTempInlet" type="xs:int" use="required"/>
+		<xs:attribute name="coolingPower" type="xs:int" use="required"/>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemDataDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="v2.9:AbstractElectricMachineSystemDataType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P200</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P201</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType">
+						<xs:annotation>
+							<xs:documentation>P261</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P203</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P204</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ElectricMachineType" type="v2.9:ElectricMachineTypeType"/>
+					<xs:element name="CertificationMethod" type="v2.9:CertificationMethodType"/>
+					<xs:element name="R85RatedPower">
+						<xs:simpleType>
+							<xs:restriction base="xs:int">
+								<xs:minExclusive value="0"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="RotationalInertia">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="ContinuousTorque">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="TestSpeedContinuousTorque">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="OverloadTorque">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="TestSpeedOverloadTorque">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="OverloadDuration">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="TestVoltageOverload">
+						<xs:simpleType>
+							<xs:restriction base="xs:int">
+								<xs:minExclusive value="0"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="DcDcConverterIncluded" type="xs:boolean"/>
+					<xs:element name="IHPCType" type="v2.9:IHPCTypeType"/>
+					<xs:element name="VoltageLevel" type="v2.9:AbstractElectricMachineSystemVoltageLevelType" maxOccurs="unbounded"/>
+					<xs:element name="DragCurve">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:ElectricMachineSystemDragTorqueEntryType"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Conditioning">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:ElectricMachineSystemConditioningEntryType"/>
+							</xs:sequence>
+							<xs:attribute name="circuitId" type="xs:int" use="required"/>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemDragTorqueEntryType">
+		<xs:attribute name="outShaftSpeed" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="dragTorque" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemMaxTorqueEntryType">
+		<xs:attribute name="outShaftSpeed" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="maxTorque" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="minTorque" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:maxInclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemPowerMapEntryType">
+		<xs:attribute name="outShaftSpeed" use="required">
+			<xs:simpleType>
+				<xs:restriction base="v1.0:Double2">
+					<xs:minInclusive value="0.00"/>
+				</xs:restriction>
+			</xs:simpleType>
+		</xs:attribute>
+		<xs:attribute name="torque" type="v1.0:Double2" use="required"/>
+		<xs:attribute name="electricPower" type="v1.0:Double2" use="required"/>
+	</xs:complexType>
+	<xs:complexType name="ElectricMachineSystemVoltageLevelType">
+		<xs:complexContent>
+			<xs:extension base="v2.9:AbstractElectricMachineSystemVoltageLevelType">
+				<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">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:ElectricMachineSystemMaxTorqueEntryType" minOccurs="2" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="PowerMap">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:ElectricMachineSystemPowerMapEntryType" minOccurs="4" maxOccurs="unbounded"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IEPCComponentDeclarationType">
+		<xs:sequence>
+			<xs:element name="Data" type="v2.9:AbstractIEPCDataType"/>
+			<xs:element name="Signature" type="v2.0:SignatureType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="IEPCDataDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="v2.9:AbstractIEPCDataType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P200</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P201</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CertificationNumber" type="v1.0:CertificationNumberType">
+						<xs:annotation>
+							<xs:documentation>P261</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P203</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AppVersion" type="v1.0:AppVersionType">
+						<xs:annotation>
+							<xs:documentation>P204</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ElectricMachineType" type="v2.9:ElectricMachineTypeType"/>
+					<xs:element name="CertificationMethod" type="v2.9:IEPCCertificationMethodType"/>
+					<xs:element name="R85RatedPower">
+						<xs:simpleType>
+							<xs:restriction base="xs:int">
+								<xs:minExclusive value="0"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="RotationalInertia">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="ContinuousTorque">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="TestSpeedContinuousTorque">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="OverloadTorque">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="TestSpeedOverloadTorque">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="OverloadDuration">
+						<xs:simpleType>
+							<xs:restriction base="v1.0:Double2">
+								<xs:minExclusive value="0.00"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="TestVoltageOverload">
+						<xs:simpleType>
+							<xs:restriction base="xs:int">
+								<xs:minExclusive value="0"/>
+							</xs:restriction>
+						</xs:simpleType>
+					</xs:element>
+					<xs:element name="DifferentialIncluded"/>
+					<xs:element name="DesignTypeWheelMotor"/>
+					<xs:element name="NrOfDesignTypeWheelMotorMeasured" minOccurs="0"/>
+					<xs:element name="Gears" type="v2.9:AbstractIEPCGearsDeclarationType"/>
+					<xs:element name="VoltageLevel" type="v2.9:AbstractElectricMachineSystemVoltageLevelType" maxOccurs="unbounded"/>
+					<xs:element name="DragCurve">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:ElectricMachineSystemDragTorqueEntryType"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Conditioning">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="Entry" type="v2.9:ElectricMachineSystemConditioningEntryType"/>
+							</xs:sequence>
+							<xs:attribute name="circuitId" type="xs:int" use="required"/>
+						</xs:complexType>
+					</xs:element>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IEPCGearDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="v2.0:GearBaseType">
+				<xs:sequence>
+					<xs:element name="MaxOutShaftTorque" minOccurs="0"/>
+					<xs:element name="MaxOutShaftSpeed" minOccurs="0"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="IEPCGearsDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="v2.9:AbstractIEPCGearsDeclarationType">
+				<xs:sequence>
+					<xs:element name="Gear" type="v2.9:IEPCGearDeclarationType" maxOccurs="unbounded"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="REESSComponentDeclarationType">
+		<xs:sequence>
+			<xs:element name="Data" type="v2.9:AbstractREESSDataType"/>
+			<xs:element name="Signature" type="v2.0:SignatureType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:simpleType name="BatteryTypeType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="HPBS"/>
+			<xs:enumeration value="HEBS"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="CertificationMethodType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="Measurement"/>
+			<xs:enumeration value="Standard values"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="ElectricMachineTypeType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="ASM"/>
+			<xs:enumeration value="ESM"/>
+			<xs:enumeration value="PSM"/>
+			<xs:enumeration value="RM"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="IEPCCertificationMethodType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="Measured for complete component"/>
+			<xs:enumeration value="Measured for EM and standard values for other components"/>
+			<xs:enumeration value="Standard values for all components"/>
+		</xs:restriction>
+	</xs:simpleType>
+	<xs:simpleType name="IHPCTypeType">
+		<xs:restriction base="xs:string">
+			<xs:enumeration value="None"/>
+			<xs:enumeration value="IHPC Type 1"/>
+		</xs:restriction>
+	</xs:simpleType>
+</xs:schema>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
index 96eb24c72b..2d3da05674 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
@@ -13,4 +13,5 @@
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" schemaLocation="VectoDeclarationDefinitions.2.3_DEV.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" schemaLocation="VectoDeclarationDefinitions.2.6_Buses.xsd"/>
 	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" schemaLocation="VectoDeclarationDefinitions.2.8_Stage.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9" schemaLocation="VectoDeclarationDefinitions.2.9_xEV_Components.xsd"/>
 </xs:schema>
diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp
index e776a5e7ab..082d7e9334 100644
--- a/VectoCore/VectoXML.spp
+++ b/VectoCore/VectoXML.spp
@@ -109,6 +109,7 @@
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.3_DEV.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.6_Buses.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.8_Stage.xsd" HomeFolder="Yes"/>
+			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.9_xEV_Components.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationJob.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoInput.1.0.xsd" HomeFolder="Yes"/>
-- 
GitLab