diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAdasType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAdasType.cs
index a587427aa5fb789f0dca11cf149ff414338126d2..85508575b06fc1f8e6b44eb277272be33b48b7db 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAdasType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAdasType.cs
@@ -17,6 +17,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var adas = inputData.JobInputData.Vehicle.ADAS;
+
+			if (adas == null)
+				return null;
+
 			return new XElement(_vif + XMLNames.Vehicle_ADAS,
 				new XElement(_vif + XMLNames.Vehicle_ADAS_EngineStopStart, adas.EngineStopStart),
 				new XElement(_vif +  XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adas.EcoRoll == EcoRollType.WithoutEngineStop),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAngleDriveType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAngleDriveType.cs
index d12a4c9eb51d9d75a10103776db5ad6d1ed6d21a..6cbc76b3e7b57e546ba49e53edcb869042af5ea0 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAngleDriveType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAngleDriveType.cs
@@ -17,6 +17,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var angelDrive = inputData.JobInputData.Vehicle.Components.AngledriveInputData;
+			if (angelDrive == null)
+				return null;
 
 			return new XElement(_vif + XMLNames.Component_Angledrive,
 					new XElement(_vif + XMLNames.ComponentDataWrapper,
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAuxiliaryType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAuxiliaryType.cs
index 9ab10fced1ac0b7584ea23683bad123092416f32..4c8afdea77f15f6e008d44792370819c6a8d18a4 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAuxiliaryType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAuxiliaryType.cs
@@ -21,6 +21,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var aux = inputData.JobInputData.Vehicle.Components.BusAuxiliaries;
+			if (aux != null)
+				return null;
 
 			return new XElement(_vif + XMLNames.Component_Auxiliaries,
 					new XElement(_vif + XMLNames.ComponentDataWrapper,
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAxleWheelsType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAxleWheelsType.cs
index cca0efe492a6231c2d41dc2185bcfd8305bf51e0..4143f571461cd5a959d09f406d73dbb20d37ac52 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAxleWheelsType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAxleWheelsType.cs
@@ -16,6 +16,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var axleWheels = inputData.JobInputData.Vehicle.Components.AxleWheels;
+			if (axleWheels != null)
+				return null;
+
 			return new XElement(_vif + XMLNames.Component_AxleWheels,
 				new XElement(_vif + XMLNames.ComponentDataWrapper,
 					new XAttribute(_xsi + "type", "v2.0:AxleDataDeclarationType"),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAxlegearType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAxlegearType.cs
index fbfc735e5a5cf412115a829db8d5579f60f77f17..50d28e522d7167b72310440beb973ff78636f582 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAxlegearType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFAxlegearType.cs
@@ -17,7 +17,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var axleGear = inputData.JobInputData.Vehicle.Components.AxleGearInputData;
-
+			if (axleGear == null)
+				return null;
+			
 			return new XElement(_vif + XMLNames.Component_Axlegear,
 				new XElement(_vif + XMLNames.ComponentDataWrapper,
 					new XAttribute(_xsi + "type", "vif:AxlegearDataVIFType"),
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFElectricEnergyStorageType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFElectricEnergyStorageType.cs
index d50b95c8f000ebb54164312b543bdadb2a29be0f..5a5619a40385c8ac1b5e46079ae9f6267bfa962c 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFElectricEnergyStorageType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFElectricEnergyStorageType.cs
@@ -19,7 +19,9 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var electricStorages = inputData.JobInputData.Vehicle.Components.ElectricStorage.ElectricStorageElements;
-			
+			if (electricStorages == null)
+				return null;
+
 			var result = new List<XElement>();
 			
 			foreach (var entry in electricStorages) {
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFEngineType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFEngineType.cs
index 04b646aac16ff07539b726824c4b013b6817c149..3fc1517bddc26048ed3ada71258f6217e3e471e4 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFEngineType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFEngineType.cs
@@ -21,6 +21,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var engine = inputData.JobInputData.Vehicle.Components.EngineInputData;
+			if (engine == null)	
+				return null;
 
 			return new XElement(_vif + XMLNames.Component_Engine,
 					new XElement(_vif + XMLNames.ComponentDataWrapper,
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFIepcType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFIepcType.cs
index 1dfd3bfea009a3aec0262fa7a4bbe2ed9ccd35e0..263d5f9ca730245b664da7f71fb42247321b5a29 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFIepcType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFIepcType.cs
@@ -19,6 +19,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var iepc = inputData.JobInputData.Vehicle.Components.IEPC;
+			if (iepc == null)
+				return null;
 
 			return new XElement(_vif + XMLNames.Component_IEPC,
 					new XElement(_vif + XMLNames.ComponentDataWrapper,
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFTorqueConverterType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFTorqueConverterType.cs
index 8239cc8e5b9f65d9fc7951329a7203483214b2c8..626dcb8f5692c66a8114a28d35a50c6577ad365d 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFTorqueConverterType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFTorqueConverterType.cs
@@ -20,6 +20,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var torque = inputData.JobInputData.Vehicle.Components.TorqueConverterInputData;
+			if (torque == null)
+				return null;
 			
 			return new XElement(_vif + XMLNames.Component_TorqueConverter,
 					new XElement(_vif + XMLNames.ComponentDataWrapper,
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFTransmissionType.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFTransmissionType.cs
index a16fbfe45cdb92ca0f59c06e4d06ce24e40cc8ec..56f45595f8b7990e07f55af2ac704edd2a3338d4 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFTransmissionType.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/VehicleInformationFile/VehicleInformationFile_0_1/Components/VIFTransmissionType.cs
@@ -23,6 +23,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
 		public XElement GetElement(IDeclarationInputDataProvider inputData)
 		{
 			var transmission = inputData.JobInputData.Vehicle.Components.GearboxInputData;
+			if (transmission == null)
+				return null;
 
 			return new XElement(_vif + XMLNames.Component_Transmission,
 					new XElement(_vif + XMLNames.ComponentDataWrapper,