From 1fbd4e0d0b854e004ccd8f00b6e86d63fcc345d7 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 23 Jun 2021 13:24:06 +0200
Subject: [PATCH] adding sleeper cab as optional input in XSD 1.0; new xsd
 version 2.2.1 for exempted vehicles with axle configuration and sleeper cab
 as input parameters

---
 .../XSD/VectoDeclarationDefinitions.1.0.xsd   |  5 ++
 .../XSD/VectoDeclarationDefinitions.2.2.1.xsd | 78 +++++++++++++++++++
 .../XSD/VectoDeclarationDefinitions.xsd       |  1 +
 VectoCore/VectoXML.spp                        |  1 +
 4 files changed, 85 insertions(+)
 create mode 100644 VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.2.1.xsd

diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.1.0.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.1.0.xsd
index 93df0b89c8..e722d017dd 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.1.0.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.1.0.xsd
@@ -1067,6 +1067,11 @@
 									<xs:documentation>P269 - bool</xs:documentation>
 								</xs:annotation>
 							</xs:element>
+							<xs:element name="SleeperCab" type="tns:SleeperCabType" minOccurs="0">
+								<xs:annotation>
+									<xs:documentation>P276 - bool</xs:documentation>
+								</xs:annotation>
+							</xs:element>
 							<xs:element name="MaxNetPower1" type="tns:PowerType" minOccurs="0">
 								<xs:annotation>
 									<xs:documentation>P277 - [W]</xs:documentation>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.2.1.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.2.1.xsd
new file mode 100644
index 0000000000..7ad79eb94c
--- /dev/null
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.2.1.xsd
@@ -0,0 +1,78 @@
+<?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:v2.2="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.2" 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" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:ns1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.2.1" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.2.1" 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:complexType name="ExemptedVehicleDeclarationType">
+		<xs:complexContent>
+			<xs:extension base="v2.0:AbstractVehicleDeclarationType">
+				<xs:sequence>
+					<xs:element name="Manufacturer" type="v1.0:ManufacturerType">
+						<xs:annotation>
+							<xs:documentation>P235</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ManufacturerAddress" type="v1.0:ManufacturerAddressType">
+						<xs:annotation>
+							<xs:documentation>P252</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Model" type="v1.0:ModelType">
+						<xs:annotation>
+							<xs:documentation>P236</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="VIN" type="v1.0:VINType">
+						<xs:annotation>
+							<xs:documentation>P238</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="Date" type="v1.0:DateTimeWithTimezone">
+						<xs:annotation>
+							<xs:documentation>P239</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="LegislativeClass" type="v1.0:LegislativeClassDeclarationType">
+						<xs:annotation>
+							<xs:documentation>P251 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="VehicleCategory" type="v1.0:VehicleCategoryDeclarationType">
+						<xs:annotation>
+							<xs:documentation>P036 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="AxleConfiguration" type="v1.0:VehicleAxleConfigurationDeclarationType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P037 - enum</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="CurbMassChassis" type="v1.0:VehicleCurbMassChassisType">
+						<xs:annotation>
+							<xs:documentation>P038 - [kg]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="GrossVehicleMass" type="v1.0:VehicleGrossVehicleMassType">
+						<xs:annotation>
+							<xs:documentation>P041 - [kg]</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:element name="ZeroEmissionVehicle" type="xs:boolean"/>
+					<xs:element name="SleeperCab" type="v1.0:SleeperCabType" minOccurs="0">
+						<xs:annotation>
+							<xs:documentation>P276 - bool</xs:documentation>
+						</xs:annotation>
+					</xs:element>
+					<xs:sequence minOccurs="0">
+						<xs:element name="MaxNetPower1" type="xs:int"/>
+						<xs:element name="MaxNetPower2" type="xs:int"/>
+					</xs:sequence>
+					<xs:element name="HybridElectricHDV" type="xs:boolean"/>
+					<xs:element name="DualFuelVehicle" type="xs:boolean"/>
+				</xs:sequence>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+</xs:schema>
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
index 91299082a6..d85651e68a 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
@@ -10,4 +10,5 @@
 	<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:v2.2" schemaLocation="VectoDeclarationDefinitions.2.2.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.2.1" schemaLocation="VectoDeclarationDefinitions.2.2.1.xsd"/>
 </xs:schema>
diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp
index cc5a4c3913..6e7c92ec7e 100644
--- a/VectoCore/VectoXML.spp
+++ b/VectoCore/VectoXML.spp
@@ -64,6 +64,7 @@
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.1.0.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.0.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.1.xsd" HomeFolder="Yes"/>
+			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.2.1.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.2.2.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationDefinitions.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoDeclarationJob.xsd" HomeFolder="Yes"/>
-- 
GitLab