From 5db61a94badfa9b3019986b54ef69eecfbfaead4 Mon Sep 17 00:00:00 2001
From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at>
Date: Tue, 9 Feb 2021 17:30:51 +0100
Subject: [PATCH] first draft of VIF xsd

---
 .../XSD/VectoOutputInterimVehicle.xsd         | 60 +++++++++++++++++++
 VectoCore/VectoXML.spp                        |  1 +
 2 files changed, 61 insertions(+)
 create mode 100644 VectoCore/VectoCore/Resources/XSD/VectoOutputInterimVehicle.xsd

diff --git a/VectoCore/VectoCore/Resources/XSD/VectoOutputInterimVehicle.xsd b/VectoCore/VectoCore/Resources/XSD/VectoOutputInterimVehicle.xsd
new file mode 100644
index 0000000000..064ee87e6d
--- /dev/null
+++ b/VectoCore/VectoCore/Resources/XSD/VectoOutputInterimVehicle.xsd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- edited with XMLSpy v2021 (x64) (http://www.altova.com) by Franz Kober (Technische Universität Graz) -->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vif="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" 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:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.4="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.4" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:v0.1="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" xmlns:out="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" xmlns:common="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile:v0.1" elementFormDefault="qualified" attributeFormDefault="unqualified" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutput:PrimaryVehicleInformation:HeavyBus:v0.1" schemaLocation="VectoOutputPrimaryBus.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationOutputDefinitions" schemaLocation="VectoOutputDefinitions.xsd"/>
+	<xs:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" schemaLocation="VectoDeclarationDefinitions.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:import namespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" schemaLocation="VectoDeclarationDefinitions.2.8_Stage.xsd"/>
+	<xs:element name="VectoOuputMultistage">
+		<xs:annotation>
+			<xs:documentation>Comment describing your root element</xs:documentation>
+		</xs:annotation>
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="PrimaryVehicle" type="vif:PrimaryVehicleHeavyBusDataType"/>
+				<xs:element name="ManufacturingStage" type="vif:ManufacturingStageType" maxOccurs="unbounded"/>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+	<xs:complexType name="AbstractManufacturingStageDataType" abstract="true"/>
+	<xs:complexType name="ManufacturingStageDataType">
+		<xs:complexContent>
+			<xs:extension base="vif:AbstractManufacturingStageDataType">
+				<xs:sequence>
+					<xs:element name="Data">
+						<xs:complexType>
+							<xs:sequence>
+								<xs:element name="HashPreviousStage" type="v1.0:SignatureType"/>
+								<xs:element name="Vehicle" type="v2.8:VectoStageInputType"/>
+								<xs:element name="ApplicationInformation" type="v0.1:ApplicationInformationPIFType"/>
+							</xs:sequence>
+						</xs:complexType>
+					</xs:element>
+					<xs:element name="Signature" type="v1.0:SignatureType"/>
+				</xs:sequence>
+				<xs:attribute name="stageCount" use="required">
+					<xs:simpleType>
+						<xs:restriction base="xs:int">
+							<xs:minInclusive value="2"/>
+						</xs:restriction>
+					</xs:simpleType>
+				</xs:attribute>
+			</xs:extension>
+		</xs:complexContent>
+	</xs:complexType>
+	<xs:complexType name="ManufacturingStageType">
+		<xs:sequence>
+			<xs:element name="Data" type="vif:AbstractManufacturingStageDataType"/>
+		</xs:sequence>
+	</xs:complexType>
+	<xs:complexType name="PrimaryVehicleHeavyBusDataType">
+		<xs:sequence>
+			<xs:element name="Data" type="v0.1:PrimaryVehicleHeavyBusDataType"/>
+		</xs:sequence>
+	</xs:complexType>
+</xs:schema>
diff --git a/VectoCore/VectoXML.spp b/VectoCore/VectoXML.spp
index 8b50d7362a..f9cb3264b6 100644
--- a/VectoCore/VectoXML.spp
+++ b/VectoCore/VectoXML.spp
@@ -121,6 +121,7 @@
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.0.8.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputCustomer.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputDefinitions.xsd" HomeFolder="Yes"/>
+			<File FilePath="VectoCore\Resources\XSD\VectoOutputInterimVehicle.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.5.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.6.xsd" HomeFolder="Yes"/>
 			<File FilePath="VectoCore\Resources\XSD\VectoOutputManufacturer.0.7.xsd" HomeFolder="Yes"/>
-- 
GitLab