diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index e800a6395a54d26c526ddc0b3ab113f4e670fa96..201e19b047271bdee2cf405de8c669cded1974f5 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -82,6 +82,15 @@ namespace TUGraz.VectoCommon.InputData
 
 		public string SourceVersion { get; set; }
 
+		/// <summary>
+		/// In case of components loaded from XML files, this is the name of the XSD Type
+		/// </summary>
+		public string Type { get; set; }
+
+		public string SourceTypeVersion { get; set; }
+
+
+
 		public string SourcePath => SourceFile != null ? Path.GetDirectoryName(Path.GetFullPath(SourceFile)) : null;
 	}
 
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLResource.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLResource.cs
index 057b4afd1e194aada2be9680a066c399ac4667fb..f39e292819b9df4f5c27f454c850329be0cf2b48 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLResource.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLResource.cs
@@ -33,6 +33,7 @@ using System.Xml;
 using System.Xml.Linq;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCore.Utils;
+using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType;
 
 namespace TUGraz.VectoCore.InputData.FileIO.XML.Common {
 	public abstract class AbstractXMLResource : AbstractXMLType, IXMLResource
@@ -44,13 +45,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Common {
 			SourceFile = source;
 		}
 
-		public virtual DataSource DataSource => new DataSource() { SourceFile = SourceFile, SourceVersion = SourceVersion, SourceType = SourceType };
+		public virtual DataSource DataSource => new DataSource() { 
+			Type = SchemaType,
+			SourceFile = SourceFile, 
+			SourceVersion = SourceVersion,
+			SourceType = SourceType,
+		};
 
+		public string SourceTypeVersion { get; }
 
-		protected string SourceVersion => XMLHelper.GetVersionFromNamespaceUri(SchemaNamespace);
+		protected string SourceVersion => SchemaNamespace.GetVersionFromNamespaceUri();
 
 		protected abstract XNamespace SchemaNamespace { get; }
 
+		
 		protected abstract DataSourceType SourceType { get; }
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLType.cs
index aaf93c05a5982a2877a06e26a5f7036468896ed3..a4b44c0bea6a463b63630e946ac7515c0802e620 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLType.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Common/AbstractXMLType.cs
@@ -32,6 +32,7 @@
 using System;
 using System.Collections.Generic;
 using System.Xml;
+using System.Xml.Schema;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
@@ -42,9 +43,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Common {
 	public abstract class AbstractXMLType : LoggingObject
 	{
 		protected readonly XmlNode BaseNode;
+		protected readonly string SchemaType;
 
 		protected AbstractXMLType(XmlNode node)
 		{
+			SchemaType = node.SchemaInfo?.SchemaType?.Name ;
+			
 			BaseNode = node;
 		}