diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs
index 12e8ad9e9a591385abaedc895a1cf5f6bdba16c6..eb627b521035c23d79edf55c1b34a37c34744fe0 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs
@@ -16,17 +16,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider {
 			get { return true; }
 		}
 
-		public string Manufacturer
+		public virtual string Manufacturer
 		{
 			get { return GetString(XMLNames.Component_Manufacturer); }
 		}
 
-		public string Model
+		public virtual string Model
 		{
 			get { return GetString(XMLNames.Component_Model); }
 		}
 
-		public string Date
+		public virtual string Date
 		{
 			get { return GetString(XMLNames.Component_Date); }
 		}
@@ -39,7 +39,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider {
 			}
 		}
 
-		protected TableData ReadTableData(string baseElement, string entryElement, Dictionary<string, string> mapping)
+		protected virtual TableData ReadTableData(string baseElement, string entryElement, Dictionary<string, string> mapping)
 		{
 			var entries = BaseNode.SelectNodes(
 				XMLHelper.QueryLocalName(baseElement, entryElement));
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV20InjectModule.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV20InjectModule.cs
new file mode 100644
index 0000000000000000000000000000000000000000..61f7e597875c4505566504bee936dde400b9db61
--- /dev/null
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/NinjectModules/XMLDeclarationInputDataV20InjectModule.cs
@@ -0,0 +1,92 @@
+using Ninject.Modules;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Interfaces;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl;
+using TUGraz.VectoCore.Utils;
+
+namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.NinjectModules
+{
+	public class XMLDeclarationInputDataV20InjectModule : NinjectModule
+	{
+		#region Overrides of NinjectModule
+
+		public override void Load()
+		{
+			Bind<IXMLDeclarationInputData>().To<XMLDeclarationInputDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationInputDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLDeclarationJobInputData>().To<XMLDeclarationJobInputDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationJobInputDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLDeclarationVehicleData>().To<XMLDeclarationVehicleDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationVehicleDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLVehicleComponentsDeclaration>().To<XMLDeclarationComponentsDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationComponentsDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLAirdragDeclarationInputData>().To<XMLDeclarationAirdragDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAirdragDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLAngledriveInputData>().To<XMLDeclarationAngledriveDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAngledriveDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLAxleGearInputData>().To<XMLDeclarationAxlegearDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAxlegearDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLEngineDeclarationInputData>().To<XMLDeclarationEngineDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationEngineDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLRetarderInputData>().To<XMLDeclarationRetarderDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationRetarderDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLGearboxDeclarationInputData>().To<XMLDeclarationGearboxDataProviderV20>()
+													.Named(XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationGearboxDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLGearData>().To<XMLGearDataV20>().Named(XMLHelper.GetVersionFromNamespaceUri(XMLGearDataV20.NAMESPACE_URI));
+
+			Bind<IXMLTorqueConverterDeclarationInputData>().To<XMLDeclarationTorqueConverterDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationTorqueConverterDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLAxlesDeclarationInputData>().To<XMLDeclarationAxlesDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAxlesDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLAxleDeclarationInputData>().To<XMLDeclarationAxleDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAxleDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLTyreDeclarationInputData>().To<XMLDeclarationTyreDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationTyreDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLAuxiliariesDeclarationInputData>().To<XMLDeclarationAuxiliariesDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationAuxiliariesDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLAuxiliaryDeclarationInputData>().To<XMLAuxiliaryDeclarationDataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLAuxiliaryDeclarationDataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLPTOTransmissionInputData>().To<XMLDeclarationPTODataProviderV20>().Named(
+				XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationPTODataProviderV20.NAMESPACE_URI));
+
+			Bind<IXMLAdvancedDriverAssistantSystemDeclarationInputData>()
+				.To<XMLDeclarationADASDataProviderV20>().Named(
+					XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationADASDataProviderV20.NAMESPACE_URI));
+
+			// ---------------------------------------------------------------------------------------
+
+			Bind<IXMLDeclarationInputDataReader>().To<XMLDeclarationInputReaderV20>()
+												.Named(XMLHelper.GetVersionFromNamespaceUri(XMLDeclarationInputReaderV20.NAMESPACE_URI));
+
+			Bind<IXMLJobDataReader>().To<XMLJobDataReaderV20>()
+									.Named(XMLHelper.GetVersionFromNamespaceUri(XMLJobDataReaderV20.NAMESPACE_URI));
+
+			Bind<IXMLComponentReader>().To<XMLComponentReaderV20>()
+										.Named(XMLHelper.GetVersionFromNamespaceUri(XMLComponentReaderV20.NAMESPACE_URI));
+
+			Bind<IXMLPTOReader>().To<XMLPTOReaderV20>()
+								.Named(XMLHelper.GetVersionFromNamespaceUri(XMLPTOReaderV20.NAMESPACE_URI));
+
+			Bind<IXMLADASReader>().To<XMLADASReaderV20>()
+								.Named(XMLHelper.GetVersionFromNamespaceUri(XMLADASReaderV20.NAMESPACE_URI));
+		}
+
+		#endregion
+	}
+}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
index b45865c404397597e3a8cfaed534b30ecb3aac6e..9dfe55a362fbcbbbc67ab1a4c550178cf42599ce 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/XMLInputDataFactory.cs
@@ -40,7 +40,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
 		}
 
 
-
 		public IEngineeringInputDataProvider CreateEngineering(Stream inputData, bool verifyXML)
 		{
 			return DoCreateEngineering(XmlReader.Create(inputData), null, verifyXML);
@@ -52,7 +51,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
 		}
 
 
-
 		public IDeclarationInputDataProvider CreateDeclaration(string filename, bool verifyXML)
 		{
 			return DoCreateDeclaration(XmlReader.Create(filename), filename, verifyXML);
@@ -91,6 +89,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
 			if (xmlDoc.DocumentElement == null) {
 				throw new VectoException("empty xml document!");
 			}
+
 			var documentType = XMLHelper.GetDocumentType(xmlDoc.DocumentElement.LocalName);
 			if (documentType == null) {
 				throw new VectoException("unknown xml file! {0}", xmlDoc.DocumentElement.LocalName);
@@ -124,10 +123,13 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML
 		private IDeclarationInputDataProvider ReadDeclarationJob(XmlDocument xmlDoc, string source, bool verifyXML)
 		{
 			var versionNumber = XMLHelper.GetSchemaVersion(xmlDoc.DocumentElement);
-
-			var input = DeclarationFactory.CreateInputProvider(versionNumber, xmlDoc, source);
-			input.Reader = DeclarationFactory.CreateInputReader(versionNumber, input, xmlDoc.DocumentElement, verifyXML);
-			return input;
+			try {
+				var input = DeclarationFactory.CreateInputProvider(versionNumber, xmlDoc, source);
+				input.Reader = DeclarationFactory.CreateInputReader(versionNumber, input, xmlDoc.DocumentElement, verifyXML);
+				return input;
+			} catch (Exception e) {
+				throw new VectoException("Failed to read Declaration job version {0}", e, versionNumber);
+			}
 		}
 	}
 }
diff --git a/VectoCore/VectoCore/Utils/XMLDefinitions.cs b/VectoCore/VectoCore/Utils/XMLDefinitions.cs
index d529e82c06d9c13bae86bc236323f94db65106f3..9dee7ee2700f7e912c41b3bba07a9456a867474d 100644
--- a/VectoCore/VectoCore/Utils/XMLDefinitions.cs
+++ b/VectoCore/VectoCore/Utils/XMLDefinitions.cs
@@ -37,6 +37,8 @@ namespace TUGraz.VectoCore.Utils
 
 		public const string DECLARATION_DEFINITIONS_NAMESPACE_URI_V10 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0";
 
+		public const string DECLARATION_DEFINITIONS_NAMESPACE_URI_V20 = "urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0";
+
 		public const string DECLARATION_INPUT_NAMESPACE_URI_V10 = "urn:tugraz:ivt:VectoAPI:DeclarationInput:v1.0";
 
 		public const string DECLARATION_COMPONENT_NAMESPACE_URI_V10 = "urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0";
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index bb67b6da9dc2caae157b9c50274303b287da577d..57e753415f8b0d823acd7fdb0c4e4f85647d2190 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -169,6 +169,7 @@
     <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLTorqueConverterDeclarationInputData.cs" />
     <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLTyreDeclarationInputData.cs" />
     <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLVehicleComponentsDeclaration.cs" />
+    <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV20InjectModule.cs" />
     <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\AbstractComponentReader.cs" />
     <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\XMLADASReader.cs" />
     <Compile Include="InputData\FileIO\XML\Declaration\Reader\Impl\XMLComponentReader.cs" />
@@ -231,19 +232,19 @@
     <Compile Include="InputData\FileIO\XML\Engineering\Interfaces\IXMLRetarderData.cs" />
     <Compile Include="InputData\FileIO\XML\Engineering\Interfaces\IXMLTorqueconverterData.cs" />
     <Compile Include="InputData\FileIO\XML\Engineering\Interfaces\IXMLTyreData.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\IXMLComponentsReader.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\IXMLDriverDataReader.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\Reader\IXMLComponentsReader.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\Reader\IXMLDriverDataReader.cs" />
     <Compile Include="InputData\FileIO\XML\Engineering\IXMLEngineeringInputReader.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\IXMLJobDataReader.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\Reader\IXMLJobDataReader.cs" />
     <Compile Include="InputData\FileIO\XML\Engineering\NinjectModules\XMLEngineeringReaderTestOverrides.cs" />
     <Compile Include="InputData\FileIO\XML\Engineering\NinjectModules\XMLEngineeringReaderV07InjectModule.cs" />
     <Compile Include="InputData\FileIO\XML\Engineering\NinjectModules\XMLEngineeringReaderV10InjectModule.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\Reader\AbstractExternalResourceReader.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\Reader\XMLComponentsEngineeringReader.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\Reader\XMLDriverDataReader.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\Reader\XMLEngineeringInputReader.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\Reader\XMLJobDataReader.cs" />
-    <Compile Include="InputData\FileIO\XML\Engineering\XMLEngineeringReaderInjectModule.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\AbstractExternalResourceReader.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\XMLComponentsEngineeringReader.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\XMLDriverDataReader.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\XMLEngineeringInputReader.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\Reader\Impl\XMLJobDataReader.cs" />
+    <Compile Include="InputData\FileIO\XML\Engineering\NinjectModules\XMLEngineeringReaderInjectModule.cs" />
     <Compile Include="InputData\FileIO\XML\IXMLResource.cs" />
     <Compile Include="InputData\FileIO\XML\XMLInputDataFactory.cs" />
     <Compile Include="InputData\FileIO\XML\Declaration\IXMLDeclarationInputDataReader.cs" />
@@ -287,7 +288,7 @@
     <Compile Include="OutputData\XML\Engineering\XMLEngineeringWriterInjectModule.cs" />
     <Compile Include="OutputData\XML\Engineering\XMLWriterMapping.cs" />
     <Compile Include="Utils\Ninject\UseFirstArgumentAsInstanceProvider.cs" />
-    <Compile Include="InputData\FileIO\XML\Declaration\XMLDeclarationReaderInjectModule.cs" />
+    <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationReaderInjectModule.cs" />
     <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationVehicleDataProvider.cs" />
     <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationInputDataProvider.cs" />
     <Compile Include="InputData\FileIO\XMLReports\XMLManufacturerReportReader.cs" />
@@ -674,6 +675,9 @@
     <EmbeddedResource Include="Resources\XSD\VTPReport.0.1.xsd">
       <SubType>Designer</SubType>
     </EmbeddedResource>
+    <EmbeddedResource Include="Resources\XSD\VectoEngineeringDefinitions.xsd">
+      <SubType>Designer</SubType>
+    </EmbeddedResource>
     <None Include="Utils\VectoVersionCore.tt">
       <Generator>TextTemplatingFileGenerator</Generator>
       <LastGenOutput>VectoVersionCore.cs</LastGenOutput>
diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
index 595e8dc3c1b0cd815b9a83f60124a001be6894b9..239d0720a37e56d0f998a48bc6fea94f331a88e6 100644
--- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj
+++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj
@@ -198,6 +198,7 @@
     <Compile Include="Utils\DoubleExtensionMethodTest.cs" />
     <Compile Include="Utils\VectoMathTest.cs" />
     <Compile Include="XML\XMLDeclarationInputTest.cs" />
+    <Compile Include="XML\XMLDeclarationReaderVersionsTest.cs" />
     <Compile Include="XML\XMLEngineeringInputRefTest.cs" />
     <Compile Include="XML\XMLEngineeringInputSingleTest.cs" />
     <Compile Include="XML\XMLReportTest.cs" />
@@ -2834,6 +2835,81 @@
     <Content Include="TestData\XML\EngineeringJob\SampleJobEngineering1.1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\Tractor_4x2_vehicle-class-5_5_t_0.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\vecto_engine-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\vecto_vehicle-exempted-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\vecto_vehicle-new_parameters-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion1.0\vecto_vehicle-sample_LNG.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\Tractor_4x2_vehicle-class-5_5_t_0.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_engine-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_tyre-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_vehicle-components_1.0.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_vehicle-new_parameters-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.0\vecto_vehicle-sample_LNG.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\Tractor_4x2_vehicle-class-5_5_t_0.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_engine-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_tyre-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-components_1.0.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-engine_2.0.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-exempted-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-new_parameters-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.1\vecto_vehicle-sample_LNG.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\Tractor_4x2_vehicle-class-5_5_t_0.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_engine-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_tyre-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_vehicle-exempted-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_vehicle-new_parameters-sample.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.2\vecto_vehicle-sample_LNG.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
     <Content Include="TestData\XML\XMLReaderDeclaration\Tractor_4x2_vehicle-class-5_5_t_0.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
diff --git a/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs b/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..96459fff886900748f9249f32ad252b5b4fcc8a5
--- /dev/null
+++ b/VectoCore/VectoCoreTest/XML/XMLDeclarationReaderVersionsTest.cs
@@ -0,0 +1,80 @@
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Xml;
+using Ninject;
+using NUnit.Framework;
+using TUGraz.VectoCommon.Models;
+using TUGraz.VectoCore.InputData.FileIO.XML;
+using TUGraz.VectoCore.Models.Simulation.Impl;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.FileIO;
+using TUGraz.VectoCore.Utils;
+using XmlDocumentType = System.Xml.XmlDocumentType;
+
+namespace TUGraz.VectoCore.Tests.XML
+{
+	[TestFixture]
+	public class XMLDeclarationReaderVersionsTest
+	{
+		protected IXMLInputDataReader xmlInputReader;
+		private IKernel _kernel;
+
+		[OneTimeSetUp]
+		public void RunBeforeAnyTests()
+		{
+			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
+
+			_kernel = new StandardKernel(new VectoNinjectModule());
+			xmlInputReader = _kernel.Get<IXMLInputDataReader>();
+		}
+
+		[TestCase(@"SchemaVersion1.0\Tractor_4x2_vehicle-class-5_5_t_0.xml")]
+		public void TestReadingJobVersion_V10(string jobFile)
+		{
+			ReadDeclarationJob(jobFile);
+		}
+
+		[TestCase(@"SchemaVersion2.0\Tractor_4x2_vehicle-class-5_5_t_0.xml")]
+		public void TestReadingJobVersion_V20(string jobFile)
+		{
+			ReadDeclarationJob(jobFile);
+		}
+
+
+		public void ReadDeclarationJob(string jobfile)
+		{
+			var filename = Path.Combine(@"TestData\XML\XMLReaderDeclaration", jobfile);
+
+			var fileWriter = new FileOutputWriter(filename);
+			//var sumWriter = new SummaryDataContainer(fileWriter);
+			//var jobContainer = new JobContainer(sumWriter);
+			var dataProvider = xmlInputReader.CreateDeclaration(XmlReader.Create(filename), true);
+			var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter) {
+				ModalResults1Hz = false,
+				WriteModalResults = false,
+				ActualModalData = false,
+				Validate = false,
+			};
+
+			var runs = runsFactory.SimulationRuns().ToArray();
+			Assert.IsTrue(runs.Length > 0);
+
+			//var customerRecord = fileWriter.XMLCustomerReportName;
+			//var manufacturerRecord = fileWriter.XMLFullReportName;
+
+			//var validationMsg1 = new List<string> { customerRecord };
+
+			//var validator1 = new XMLValidator(XmlReader.Create(customerRecord), validationErrorAction: (s, e) => {
+			//	validationMsg1.Add(e.ValidationEventArgs.Message);
+			//});
+			//Assert.IsTrue(validator1.ValidateXML(VectoCore.Utils.XmlDocumentType.CustomerReport), string.Join("\n", validationMsg1));
+
+			//var validationMsg2 = new List<string> { manufacturerRecord };
+			//var validator2 = new XMLValidator(XmlReader.Create(manufacturerRecord), validationErrorAction: (s, e) => {
+			//	validationMsg2.Add(e.ValidationEventArgs.Message);
+			//});
+			//Assert.IsTrue(validator2.ValidateXML(VectoCore.Utils.XmlDocumentType.ManufacturerReport), string.Join("\n", validationMsg2));
+		}
+	}
+}