diff --git a/VectoCore/VectoCore/Utils/XMLHelper.cs b/VectoCore/VectoCore/Utils/XMLHelper.cs
index 778baf28433ec8975aaecd65fb9ce80f7aa9315b..2593f35cfc157e14e003de24a60c468c5d6af3be 100644
--- a/VectoCore/VectoCore/Utils/XMLHelper.cs
+++ b/VectoCore/VectoCore/Utils/XMLHelper.cs
@@ -100,8 +100,8 @@ namespace TUGraz.VectoCore.Utils {
 		{
 			switch (unit) {
 				case "%": return GetValueAsUnit(value * 100, unit, decimals);
+				default: return GetValueAsUnit(value, unit, decimals);
 			}
-			throw new NotImplementedException(string.Format("unknown unit '{0}'", unit));
 		}
 
 		private static object[] GetValueAsUnit(double value, string unit, uint? decimals)
diff --git a/VectoCore/VectoCore/Utils/XMLValidator.cs b/VectoCore/VectoCore/Utils/XMLValidator.cs
index 4120e8d074d5195b868a6b69db08b284d00f4d8d..6752f698de79e6ecc19f6d748408d103b8c1940d 100644
--- a/VectoCore/VectoCore/Utils/XMLValidator.cs
+++ b/VectoCore/VectoCore/Utils/XMLValidator.cs
@@ -52,7 +52,8 @@ namespace TUGraz.VectoCore.Utils
 			{XmlDocumentType.DeclarationComponentData, Tuple.Create("VectoComponent{0}.xsd", new [] {"1.0"}) },
 			{XmlDocumentType.EngineeringData, Tuple.Create("VectoEngineeringInput{0}.xsd", new [] {"0.7"}) },
 			{XmlDocumentType.ManufacturerReport, Tuple.Create("VectoOutputManufacturer{0}.xsd", new [] {"0.4", "0.5", "0.6", "0.7"}) },
-			{ XmlDocumentType.CustomerReport , Tuple.Create("VectoOutputCustomer{0}.xsd", new [] {"0.4", "0.5", "0.7"})},
+			{XmlDocumentType.CustomerReport , Tuple.Create("VectoOutputCustomer{0}.xsd", new [] {"0.4", "0.5", "0.7"})},
+			{XmlDocumentType.MonitoringReport , Tuple.Create("VectoMonitoring{0}.xsd", new [] {"0.7"})},
 		};
 
 		private XMLValidator(Action<bool> resultaction, Action<XmlSeverityType, ValidationEvent> validationErrorAction)
@@ -134,6 +135,7 @@ namespace TUGraz.VectoCore.Utils
 			EngineeringData = 1<<4,
 			ManufacturerReport = 1<<5,
 			CustomerReport = 1<<6,
+			MonitoringReport = 1<<7,
 		}
 	}
 
diff --git a/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs b/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs
index ebad3406e1ce6ebbb2b6e551aa39b5c27e53e482..ff651e52c6584fc8354003b95a1100b7f05df107 100644
--- a/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/XMLReportTest.cs
@@ -31,7 +31,9 @@
 
 using System.IO;
 using System.Linq;
+using System.Text;
 using System.Xml;
+using System.Xml.Linq;
 using System.Xml.XPath;
 using NUnit.Framework;
 using TUGraz.VectoCommon.Models;
@@ -105,6 +107,50 @@ namespace TUGraz.VectoCore.Tests.Integration
 			}
 		}
 
+		[TestCase()]
+		public void TestValidationXMLReports()
+		{
+			var jobfile = @"Testdata\XML\XMLReaderDeclaration\vecto_vehicle-sample.xml";
+			var dataProvider = new XMLDeclarationInputDataProvider(XmlReader.Create(jobfile), true);
+			var writer = new FileOutputWriter(jobfile);
+			var xmlReport = new XMLDeclarationReport(writer);
+			var sumData = new SummaryDataContainer(writer);
+			var jobContainer = new JobContainer(sumData);
+
+			if (File.Exists(writer.SumFileName)) {
+				File.Delete(writer.SumFileName);
+			}
+
+			var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) {
+				WriteModalResults = false,
+				Validate = false,
+			};
+			jobContainer.AddRuns(runsFactory);
+
+			jobContainer.Execute();
+			jobContainer.WaitFinished();
+
+			var mrfValidator = GetValidator(xmlReport.FullReport);
+			mrfValidator.ValidateXML(XMLValidator.XmlDocumentType.ManufacturerReport);
+
+			var cifValidator = GetValidator(xmlReport.CustomerReport);
+			cifValidator.ValidateXML(XMLValidator.XmlDocumentType.CustomerReport);
+
+			var monitoringValidator = GetValidator(xmlReport.MonitoringReport);
+			monitoringValidator.ValidateXML(XMLValidator.XmlDocumentType.MonitoringReport);
+		}
+
+		private static XMLValidator GetValidator(XDocument xmlReport)
+		{
+			var mrfStream = new MemoryStream();
+			var mrfWriter = new XmlTextWriter(mrfStream, Encoding.UTF8);
+			xmlReport.WriteTo(mrfWriter);
+			mrfWriter.Flush();
+			mrfStream.Flush();
+			mrfStream.Seek(0, SeekOrigin.Begin);
+			return new XMLValidator(new XmlTextReader(mrfStream));
+		}
+
 		[TestCase()]
 		public void TestXMLReportPTO()
 		{