diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/Dockerfile b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/Dockerfile
new file mode 100644
index 0000000..b0a2f86
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/Dockerfile
@@ -0,0 +1,14 @@
+# Add java runtime environment for execution
+FROM java:8-jdk-alpine 
+
+# Copy built jar to image using the jar name specified in the pom.xml (JAR_FILE)
+ARG JAR_FILE
+COPY target/${JAR_FILE} /usr/share/basyxExecutable.jar
+COPY target/lib /usr/share/lib
+ 
+# Expose the appropriate port. In case of Tomcat, this is 8080.
+ARG PORT
+EXPOSE ${PORT}
+ 
+# Start the jar
+CMD java -jar "/usr/share/basyxExecutable.jar"
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/docker-compose.yml b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/docker-compose.yml
new file mode 100644
index 0000000..aca4d1b
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/docker-compose.yml
@@ -0,0 +1,31 @@
+version: '3'
+services:
+
+  registry:
+    image: ${BASYX_IMAGE_NAME}:${BASYX_IMAGE_TAG}
+    container_name: ${BASYX_CONTAINER_NAME}
+    ports:
+      - ${BASYX_HOST_PORT}:${BASYX_CONTAINER_PORT}
+#    depends_on:
+#      - postgres
+#    volumes:
+#      -  .\WebContent\WEB-INF\config\directory\sqldirectory\directory.properties:/basys/directory.properties
+#    links:
+#      - postgres
+
+#  postgres:
+#    image: postgres:9.4
+#    container_name: postgres
+#    environment:
+#      - POSTGRES_USER:'postgres'
+#      - POSTGRES_PASSWORD:'admin'
+#      - POSTGRES_DB=basyx-directory
+#    volumes:
+#      - ./WebContent/WEB-INF/config/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql
+#    ports:
+#      - 5433:5432
+#    expose:
+#      - 5432
+            
+
+      
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/pom.xml b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/pom.xml
new file mode 100644
index 0000000..41dff60
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/pom.xml
@@ -0,0 +1,95 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	
+	<!--
+		Simple Docker Component
+	 
+		Serves as a template for simple docker components that do not depend on other docker containers.
+		Do NOT use the included in-memory registry in a productive environment - the entries are not stored permanently
+	 -->
+
+	<parent>
+		<groupId>org.eclipse.basyx</groupId>
+		<artifactId>basyx.components.docker</artifactId>
+		<version>0.0.1-SNAPSHOT</version>
+    </parent>
+	
+	<artifactId>basyx.components.xmlAAS</artifactId>
+	<name>BaSyx XML Docker Component</name>
+	
+	<properties>
+		<!--  
+			basyx.components.executable is the executable class with the definition of the public void main(String[]).
+			It is needed when building the jar in the maven-jar-plugin (see basyx.components.docker/pom.xml) 
+		-->
+		<basyx.components.executable>org.eclipse.basyx.components.executable.XMLExecutable</basyx.components.executable>
+	</properties>
+	
+	<packaging>jar</packaging>
+	
+	<!-- Define additional plugins that are not included by default -->
+	<!-- Plugin configuration is done in parent project(s) -->
+	<build>
+		<plugins>
+			<!-- Attach sources to jar file -->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-source-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
+	
+	<profiles>
+		<profile>
+			<!-- 
+				"Docker" profile - do not build & install docker images by default
+				Run "mvn install -Pdocker" in order to include docker  
+			-->
+			<id>docker</id>
+			<build>
+				<plugins>
+					<!-- Read maven properties from file -->
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>properties-maven-plugin</artifactId>
+					</plugin>
+				
+					<!-- Copy the dependencies necessary to run the jar -->
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-dependency-plugin</artifactId>
+					</plugin>
+				
+					<!-- Build the docker image -->
+					<plugin>
+						<groupId>com.spotify</groupId>
+						<artifactId>dockerfile-maven-plugin</artifactId>
+					</plugin>
+				
+					<!-- Create integration test environment -->
+					<plugin>
+						<groupId>com.dkanejs.maven.plugins</groupId>
+						<artifactId>docker-compose-maven-plugin</artifactId>
+					</plugin>
+					
+					<!-- Run integration tests -->
+					<plugin>    
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-failsafe-plugin</artifactId>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+	
+	<dependencies>
+		<!-- Adds additional classes of the BaSys SDK for tests (for TestRegistryProvider) -->
+		<dependency>
+			<groupId>org.eclipse.basyx</groupId>
+			<artifactId>basyx.sdk</artifactId>
+			<classifier>tests</classifier>
+		</dependency>
+	</dependencies>
+</project>
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/java/org/eclipse/basyx/components/executable/XMLExecutable.java b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/java/org/eclipse/basyx/components/executable/XMLExecutable.java
new file mode 100644
index 0000000..9c75559
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/java/org/eclipse/basyx/components/executable/XMLExecutable.java
@@ -0,0 +1,57 @@
+package org.eclipse.basyx.components.executable;
+
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.basyx.components.configuration.BaSyxContextConfiguration;
+import org.eclipse.basyx.components.servlets.XMLAASFactory;
+import org.eclipse.basyx.vab.protocol.http.server.AASHTTPServer;
+import org.eclipse.basyx.vab.protocol.http.server.BaSyxContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.xml.sax.SAXException;
+
+/**
+ * A XML registry servlet based on an InMemory Registry. The servlet therefore
+ * provides an implementation for the IAASRegistryService interface without a
+ * permanent storage capability. it imports AAS from given XML location provided
+ * in the context.properties and maps the AAS to servlet as well
+ * 
+ * Do not use this registry in a productive environment - the entries are not
+ * persistent!
+ * 
+ * @author haque
+ */
+public class XMLExecutable {
+
+	// Creates a Logger based on the current class
+	private static Logger logger = LoggerFactory.getLogger(XMLExecutable.class);
+
+	// The path the created servlet is mapped to
+	public static final String SERVLET_MAPPING = "/";
+	
+	// The server with the servlet that will be created
+	private static AASHTTPServer server;
+
+	// Default constructor
+	private XMLExecutable() {
+	}
+
+	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException {
+		logger.info("Starting BaSyx XML registry");
+
+		// Load configuration
+		BaSyxContextConfiguration config = new BaSyxContextConfiguration();
+		config.loadFromResource(BaSyxContextConfiguration.DEFAULT_CONFIG_PATH);
+
+		// Create a context suing the configuration
+		BaSyxContext context = XMLAASFactory.createContext(config);
+
+		// Create and start server
+		server = new AASHTTPServer(context);
+		logger.info("Starting server...");
+		server.start();
+	}
+
+}
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/java/org/eclipse/basyx/components/servlets/XMLAASFactory.java b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/java/org/eclipse/basyx/components/servlets/XMLAASFactory.java
new file mode 100644
index 0000000..4fb0281
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/java/org/eclipse/basyx/components/servlets/XMLAASFactory.java
@@ -0,0 +1,229 @@
+package org.eclipse.basyx.components.servlets;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+
+import javax.servlet.http.HttpServlet;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.eclipse.basyx.aas.factory.xml.XMLToMetamodelConverter;
+import org.eclipse.basyx.aas.metamodel.api.IAssetAdministrationShell;
+import org.eclipse.basyx.aas.metamodel.api.parts.asset.IAsset;
+import org.eclipse.basyx.aas.metamodel.map.AssetAdministrationShell;
+import org.eclipse.basyx.aas.metamodel.map.descriptor.SubmodelDescriptor;
+import org.eclipse.basyx.aas.metamodel.map.parts.Asset;
+import org.eclipse.basyx.aas.restapi.AASModelProvider;
+import org.eclipse.basyx.aas.restapi.VABMultiSubmodelProvider;
+import org.eclipse.basyx.components.configuration.BaSyxContextConfiguration;
+import org.eclipse.basyx.submodel.metamodel.api.IElement;
+import org.eclipse.basyx.submodel.metamodel.api.ISubModel;
+import org.eclipse.basyx.submodel.metamodel.api.parts.IConceptDescription;
+import org.eclipse.basyx.submodel.metamodel.map.SubModel;
+import org.eclipse.basyx.submodel.restapi.SubModelProvider;
+import org.eclipse.basyx.vab.modelprovider.api.IModelProvider;
+import org.eclipse.basyx.vab.protocol.http.server.BaSyxContext;
+import org.eclipse.basyx.vab.protocol.http.server.VABHTTPInterface;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.xml.sax.SAXException;
+
+/**
+ * It imports AAS from given XML location provided in the context.properties and
+ * maps the AAS to servlet. It also adds the submodels, assets and concept
+ * descriptors to the AAS.
+ * 
+ * 
+ * @author haque
+ */
+public class XMLAASFactory {
+	// Create a logger instance for current class
+	private static Logger logger = LoggerFactory.getLogger(XMLAASFactory.class);
+
+	/**
+	 * Generates a Basyx Context
+	 * 
+	 * @param config Configuration of the Basyx Context
+	 * @return context
+	 * @throws IOException
+	 * @throws SAXException
+	 * @throws ParserConfigurationException
+	 */
+	public static BaSyxContext createContext(BaSyxContextConfiguration config)
+			throws ParserConfigurationException, SAXException, IOException {
+
+		// Create a Basyx Context from the config
+		BaSyxContext context = new BaSyxContext(config.getContextPath(), config.getDocBasePath(), config.getHostname(),
+				config.getPort());
+
+		// Converts the XML from location to Metamodel
+		XMLToMetamodelConverter converter = convertXMLToMetamodel(config.getProperty("xmlPath"));
+
+		String contextURL = getContextURL(config);
+		addAAS(converter, context, contextURL);
+		return context; 
+	}
+
+	/**
+	 * Converts XML to Metamodel from XML location
+	 * 
+	 * @param xmlPath the location of the XML
+	 * @return Converted Metamodel
+	 * @throws IOException
+	 * @throws SAXException
+	 * @throws ParserConfigurationException
+	 */
+	private static XMLToMetamodelConverter convertXMLToMetamodel(String xmlPath)
+			throws ParserConfigurationException, SAXException, IOException {
+		String xmlString = new String(Files.readAllBytes(Paths.get(xmlPath)));
+		return new XMLToMetamodelConverter(xmlString);
+	}
+
+	/**
+	 * Adds Asset Administration Shells from the XML to context
+	 * 
+	 * @param converter  Converted Metamodel
+	 * @param context    Basyx Context
+	 * @param contextURL URL of the context
+	 * @throws IOException
+	 * @throws SAXException
+	 * @throws ParserConfigurationException
+	 */
+	private static void addAAS(XMLToMetamodelConverter converter, BaSyxContext context, String contextURL)
+			throws ParserConfigurationException, SAXException, IOException {
+		// Parse the XML and get all AAS
+		List<IAssetAdministrationShell> AAShells = converter.parseAAS();
+
+		if (AAShells.size() <= 0) {
+			logger.debug("No AAS Found in the XML");
+			return;
+		}
+
+		// Take the first AAS from the XML
+		AssetAdministrationShell aas = (AssetAdministrationShell) AAShells.get(0);
+		AASModelProvider aasProvider = new AASModelProvider(aas);
+		VABMultiSubmodelProvider aasModelProvider = new VABMultiSubmodelProvider();
+		aasModelProvider.setAssetAdministrationShell(aasProvider);
+
+		// Add Submodels. Assets and Concept Descriptions to the AAS
+		addSubmodels(converter, aas, aasModelProvider, contextURL);
+		addAssets(converter, aas);
+		addConceptDescriptions(converter, aas);
+
+		// Create a servlet using the AAS
+		HttpServlet aasServlet = new VABHTTPInterface<IModelProvider>(aasModelProvider);
+
+		String subDomain = getSubDomain(aas);
+		context.addServletMapping(subDomain, aasServlet);
+
+		logger.info("AAS Server started at " + subDomain);
+	}
+
+	/**
+	 * Adds Submodels from the XML to the given AAS
+	 * 
+	 * @param converter   converted Metamodel
+	 * @param aas         AAS with which the Submodels will be connected
+	 * @param aasProvider
+	 * @param contextURL  URL of the context
+	 */
+	private static void addSubmodels(XMLToMetamodelConverter converter, AssetAdministrationShell aas,
+			VABMultiSubmodelProvider aasProvider, String contextURL) {
+		// Parse the XML to get the submodels
+		List<ISubModel> subModels = converter.parseSubmodels();
+
+		if (subModels.size() <= 0) {
+			logger.debug("No Submodel found in the XML");
+		}
+
+		// Loops through all the submodels and add to AAS
+		for (ISubModel subModel : subModels) {
+			SubModelProvider subModelProvider = new SubModelProvider((SubModel) subModel);
+			String idString = subModel.getIdShort();
+
+			// Add the sub model to the AAS Provider
+			aasProvider.addSubmodel(idString, subModelProvider);
+
+			// Retrieve a submodel URL and connect it to the AAS
+			String submodelUrlString = getSubModelUrl(contextURL, aas.getIdShort(), idString);
+			aas.addSubModel(new SubmodelDescriptor(subModel, submodelUrlString));
+		}
+	}
+
+	/**
+	 * Adds Assets from the XML to the given AAS
+	 * 
+	 * @param converter converted Metamodel
+	 * @param aas       AAS with which the assets will be connected
+	 * @throws IOException
+	 * @throws SAXException
+	 * @throws ParserConfigurationException
+	 */
+	private static void addAssets(XMLToMetamodelConverter converter, AssetAdministrationShell aas)
+			throws ParserConfigurationException, SAXException, IOException {
+		// Parse the XML to get the assets
+		List<IAsset> assets = converter.parseAssets();
+
+		if (assets.size() <= 0) {
+			logger.debug("No Assets found in the XML");
+		}
+
+		// Loops through all the assets and add to AAS
+		for (IAsset asset : assets) {
+			aas.setAsset((Asset) asset);
+		}
+	}
+
+	/**
+	 * Adds Concept Descriptions from the XML to the given AAS
+	 * 
+	 * @param converter converted Metamodel
+	 * @param aas       AAS with which the concepts descriptions will be added
+	 */
+	private static void addConceptDescriptions(XMLToMetamodelConverter converter, AssetAdministrationShell aas) {
+		// Parse the XML to get the concept descriptions
+		List<IConceptDescription> descriptions = converter.parseConceptDescriptions();
+
+		if (descriptions.size() <= 0) {
+			logger.debug("No Concept Descriptions found in the XML");
+		}
+
+		// Loops through all the concept descriptions and add to AAS
+		for (IConceptDescription description : descriptions) {
+			aas.addConceptDescription(description);
+		}
+	}
+
+	/**
+	 * Generate a sub domain to access the Element
+	 * 
+	 * @param element the Element to be accessed by the generated subdomain
+	 * @return the subdomain
+	 */
+	private static String getSubDomain(IElement element) {
+		return "/" + element.getIdShort() + "/*";
+	}
+
+	/**
+	 * Generate submodel api url
+	 * 
+	 * @param aasId      Id of the AAS it is connected
+	 * @param subModelId id of the submodel
+	 * 
+	 * @return subModel URL
+	 */
+	private static String getSubModelUrl(String contextURL, String aasId, String subModelId) {
+		return contextURL + "/" + aasId + "/aas/submodels/" + subModelId + "/submodel";
+	}
+
+	/**
+	 * generates context URL
+	 * 
+	 * @param config
+	 * @return Context URL
+	 */
+	private static String getContextURL(BaSyxContextConfiguration config) {
+		return "http://" + config.getHostname() + ":" + config.getPort() + config.getContextPath();
+	}
+}
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/context.properties b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/context.properties
new file mode 100644
index 0000000..a109291
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/context.properties
@@ -0,0 +1,4 @@
+contextPath=/xmlAAS
+contextHostname=localhost
+contextPort=4000
+xmlPath=src/main/resources/xml/in.xml
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/logback.xml b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/logback.xml
new file mode 100644
index 0000000..86341d6
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/logback.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ 
+<configuration>
+ 
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    
+    <!-- Example for a filter, which removes all entries not containing "[TEST]" in the message. -->
+    
+    <!--<filter class="ch.qos.logback.core.filter.EvaluatorFilter">      
+      <evaluator>
+        <expression>return message.contains("[TEST]");</expression>
+      </evaluator>
+      <OnMismatch>DENY</OnMismatch>
+      <OnMatch>NEUTRAL</OnMatch>
+    </filter>-->
+  
+    <encoder>
+      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n</pattern>
+    </encoder>
+  </appender>
+  
+  <root level="INFO">          
+    <appender-ref ref="STDOUT" />
+  </root>  
+   
+</configuration>
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/xml/in.xml b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/xml/in.xml
new file mode 100644
index 0000000..1f12966
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/main/resources/xml/in.xml
@@ -0,0 +1,562 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aas:aasenv xmlns:aas="http://www.admin-shell.io/aas/2/0"
+	xmlns:IEC61360="http://www.admin-shell.io/IEC61360/2/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.admin-shell.io/aas/2/0 AAS.xsd
+	http://www.admin-shell.io/IEC61360/2/0 IEC61360.xsd">
+	<aas:assetAdministrationShells>
+		<!-- This AAS is populated with all possible fields -->
+		<aas:assetAdministrationShell>
+			<aas:idShort>aas1</aas:idShort>
+			<aas:category>test_category</aas:category>
+			<aas:description>
+				<aas:langString lang="EN">aas_Description</aas:langString>
+				<aas:langString lang="DE">Beschreibung Verwaltungsschale</aas:langString>
+			</aas:description>
+			<aas:parent>
+				<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="AssetAdministrationShell">aas_parent_id</aas:key>
+				</aas:keys>
+			</aas:parent>
+			<aas:identification idType="IRI">www.admin-shell.io/aas-sample/1/0</aas:identification>
+			<aas:administration>
+				<aas:version>1</aas:version>
+				<aas:revision>0</aas:revision>
+			</aas:administration>
+			<aas:embeddedDataSpecification>
+				<aas:dataSpecificationContent>
+					<aas:dataSpecificationIEC61360>
+						<IEC61360:preferredName>
+							<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+							<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+						</IEC61360:preferredName>
+						<IEC61360:shortName>
+							<IEC61360:langString lang="DE">N</IEC61360:langString>
+						</IEC61360:shortName>
+						<IEC61360:unit>1/min</IEC61360:unit>
+						<IEC61360:unitId>
+							<IEC61360:keys>
+								<IEC61360:key idType="IRDI" local="false" type="GlobalReference">
+									0173-1#05-AAA650#002
+								</IEC61360:key>
+							</IEC61360:keys>
+						</IEC61360:unitId>
+						<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+					</aas:dataSpecificationIEC61360>
+				</aas:dataSpecificationContent>
+				<aas:dataSpecification>
+					<aas:keys>
+						<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+					</aas:keys>
+				</aas:dataSpecification>
+			</aas:embeddedDataSpecification>
+			<aas:derivedFrom>
+				<aas:keys>
+					<aas:key type="ReferenceElement" local="false" idType="IRI">http://pk.festo.com/3s7plfdrs35</aas:key>
+				</aas:keys>
+			</aas:derivedFrom>
+			<aas:assetRef>
+				<aas:keys>
+					<aas:key type="Asset" local="false" idType="IRI">http://pk.festo.com/3s7plfdrs35</aas:key>
+				</aas:keys>
+			</aas:assetRef>
+			<aas:submodelRefs>
+				<aas:submodelRef>
+					<aas:keys>
+						<aas:key type="Submodel" local="true" idType="IRI">"http://www.zvei.de/demo/submodel/12345679"</aas:key>
+					</aas:keys>
+				</aas:submodelRef>
+				<aas:submodelRef>
+					<aas:keys>
+						<aas:key type="Submodel" local="true" idType="IRI">"http://www.zvei.de/demo/submodel/12345679_2"</aas:key>
+					</aas:keys>
+				</aas:submodelRef>
+			</aas:submodelRefs>
+			<aas:views>
+				<!-- This View is populated with all possible fields -->
+				<aas:view>
+					<aas:idShort>SampleView</aas:idShort>
+					<aas:category>test_categogy</aas:category>
+					<aas:description>
+						<aas:langString lang="EN">View_Description</aas:langString>
+					</aas:description>
+					<aas:parent>
+						<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+						<aas:keys>
+							<aas:key idType="IRI" local="false" type="Submodel">view_parent_id</aas:key>
+						</aas:keys>
+					</aas:parent>
+					<aas:semanticId>
+						<aas:keys>
+							<aas:key idType="IRI" local="false" type="Submodel">view_semantic_id</aas:key>
+						</aas:keys>
+					</aas:semanticId>
+					<aas:embeddedDataSpecification>
+						<aas:dataSpecificationContent>
+							<aas:dataSpecificationIEC61360>
+								<IEC61360:preferredName>
+									<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+									<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+								</IEC61360:preferredName>
+								<IEC61360:shortName>
+									<IEC61360:langString lang="DE">N</IEC61360:langString>
+								</IEC61360:shortName>
+								<IEC61360:unit>1/min</IEC61360:unit>
+								<IEC61360:unitId>
+									<IEC61360:keys>
+										<IEC61360:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</IEC61360:key>
+									</IEC61360:keys>
+								</IEC61360:unitId>
+								<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+							</aas:dataSpecificationIEC61360>
+						</aas:dataSpecificationContent>
+						<aas:dataSpecification>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+							</aas:keys>
+						</aas:dataSpecification>
+					</aas:embeddedDataSpecification>
+					<aas:containedElements>
+						<aas:containedElementRef>
+							<aas:keys>
+								<aas:key type="Submodel" local="true" idType="IRI">"http://www.zvei.de/demo/submodel/12345679"</aas:key>
+								<aas:key type="Property" local="true" idType="IdShort">rotationSpeed</aas:key>
+							</aas:keys>
+						</aas:containedElementRef>
+					</aas:containedElements>
+				</aas:view>
+				<!-- This is a View with only the minimal required information in it. To test for Nullpointers and such. -->
+				<aas:view>
+					<aas:idShort>EmptyView</aas:idShort>
+					<aas:containedElements></aas:containedElements>
+				</aas:view>
+			</aas:views>
+			<aas:conceptDictionaries>
+				<aas:conceptDictionary>
+					<aas:idShort>SampleDic</aas:idShort>
+					<aas:conceptDescriptionRefs>
+						<aas:conceptDescriptionRef>
+							<aas:keys>
+								<aas:key type="ConceptDescription" local="true" idType="IRDI">0173-1#02-BAA120#007</aas:key>
+							</aas:keys>
+						</aas:conceptDescriptionRef>
+						<aas:conceptDescriptionRef>
+							<aas:keys>
+								<aas:key type="ConceptDescription" local="true" idType="IRDI">0173-1#02-BAA120#007</aas:key>
+							</aas:keys>
+						</aas:conceptDescriptionRef>
+					</aas:conceptDescriptionRefs>
+				</aas:conceptDictionary>
+			</aas:conceptDictionaries>
+		</aas:assetAdministrationShell>
+		
+	</aas:assetAdministrationShells>
+	<aas:assets>
+		<!-- This Asset is populated with all possible fields -->
+		<aas:asset>
+			<aas:idShort>asset1</aas:idShort>
+			<aas:category>asset1_categogy</aas:category>
+			<aas:description>
+				<aas:langString lang="EN">asset1_Description</aas:langString>
+			</aas:description>
+			<aas:parent>
+				<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="Asset">asset_parent_id</aas:key>
+				</aas:keys>
+			</aas:parent>
+			<aas:identification idType="IRI">http://pk.festo.com/3s7plfdrs35</aas:identification>
+			<aas:administration>
+				<aas:version>1</aas:version>
+				<aas:revision>0</aas:revision>
+			</aas:administration>
+			<aas:embeddedDataSpecification>
+				<aas:dataSpecificationContent>
+					<aas:dataSpecificationIEC61360>
+						<IEC61360:preferredName>
+							<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+							<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+						</IEC61360:preferredName>
+						<IEC61360:shortName>
+							<IEC61360:langString lang="DE">N</IEC61360:langString>
+						</IEC61360:shortName>
+						<IEC61360:unit>1/min</IEC61360:unit>
+						<IEC61360:unitId>
+							<IEC61360:keys>
+								<IEC61360:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</IEC61360:key>
+							</IEC61360:keys>
+						</IEC61360:unitId>
+						<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+					</aas:dataSpecificationIEC61360>
+				</aas:dataSpecificationContent>
+				<aas:dataSpecification>
+					<aas:keys>
+						<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+					</aas:keys>
+				</aas:dataSpecification>
+			</aas:embeddedDataSpecification>
+			<aas:assetIdentificationModelRef>
+				<aas:keys>
+					<aas:key type="ConceptDescription" local="true" idType="IRI">www.festo.com/dic/08111234</aas:key>
+				</aas:keys>
+			</aas:assetIdentificationModelRef>
+			<aas:kind>Instance</aas:kind>
+		</aas:asset>
+	</aas:assets>
+	<aas:submodels>
+		<!-- This Submodel is populated with all possible fields -->
+		<aas:submodel>
+			<aas:idShort>submodel1</aas:idShort>
+			<aas:category>submodel1_categogy</aas:category>
+			<aas:description>
+				<aas:langString lang="EN">submode1_decription</aas:langString>
+			</aas:description>
+			<aas:parent>
+				<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="Submodel">submodel_parent_id</aas:key>
+				</aas:keys>
+			</aas:parent>
+			<aas:identification idType="IRI">http://www.zvei.de/demo/submodel/12345679</aas:identification>
+			<aas:administration>
+				<aas:version>1</aas:version>
+				<aas:revision>0</aas:revision>
+			</aas:administration>
+			<aas:kind>Instance</aas:kind>
+			<aas:semanticId>
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+				</aas:keys>
+			</aas:semanticId>
+			<aas:qualifier>
+				<aas:qualifiers>
+					<aas:formula>
+						<aas:dependsOnRefs>
+							<aas:reference>
+								<aas:keys>
+									<aas:key local="false" type="GlobalReference" idType="IRDI">qualifier_reference</aas:key>
+								</aas:keys>
+							</aas:reference>
+						</aas:dependsOnRefs>
+					</aas:formula>
+				</aas:qualifiers>
+				<aas:qualifiers>
+					<aas:qualifier>
+						<aas:valueId>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+							</aas:keys>
+						</aas:valueId>
+						<aas:value>qualifierValue</aas:value>
+						<aas:type>qualifierType</aas:type>
+						<aas:valueType>valueType</aas:valueType>
+						<aas:semanticId>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="GlobalReference">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+							</aas:keys>
+						</aas:semanticId>
+					</aas:qualifier>
+				</aas:qualifiers>
+			</aas:qualifier>
+			<aas:embeddedDataSpecification>
+				<aas:dataSpecificationContent>
+					<aas:dataSpecificationIEC61360>
+						<IEC61360:preferredName>
+							<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+							<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+						</IEC61360:preferredName>
+						<IEC61360:shortName>
+							<IEC61360:langString lang="DE">N</IEC61360:langString>
+						</IEC61360:shortName>
+						<IEC61360:unit>1/min</IEC61360:unit>
+						<IEC61360:unitId>
+							<IEC61360:keys>
+								<IEC61360:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</IEC61360:key>
+							</IEC61360:keys>
+						</IEC61360:unitId>
+						<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+					</aas:dataSpecificationIEC61360>
+				</aas:dataSpecificationContent>
+				<aas:dataSpecification>
+					<aas:keys>
+						<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+					</aas:keys>
+				</aas:dataSpecification>
+			</aas:embeddedDataSpecification>
+			<aas:submodelElements>
+				<aas:submodelElement>
+					<aas:property>
+						<aas:idShort>rotationSpeed</aas:idShort>
+						<aas:category>VARIABLE</aas:category>
+						<aas:semanticId>
+							<aas:keys>
+								<aas:key idType="IRI" type="ConceptDescription" local="true">www.festo.com/dic/08111234</aas:key>
+							</aas:keys>
+						</aas:semanticId>
+						<aas:qualifier>
+							<aas:qualifiers>
+								<aas:qualifier>
+									<aas:valueId>
+										<aas:keys>
+											<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+										</aas:keys>
+									</aas:valueId>
+									<aas:value>qualifierValue</aas:value>
+									<aas:type>qualifierType</aas:type>
+									<aas:valueType>valueType</aas:valueType>
+									<aas:semanticId>
+										<aas:keys>
+											<aas:key idType="IRI" local="false" type="GlobalReference">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+										</aas:keys>
+									</aas:semanticId>
+								</aas:qualifier>
+							</aas:qualifiers>
+						</aas:qualifier>
+						<aas:value>2000</aas:value>
+						<aas:valueType>double</aas:valueType>
+					</aas:property>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:property>
+						<aas:idShort>emptyDouble</aas:idShort>
+						<aas:valueType>double</aas:valueType>
+					</aas:property>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:basicEvent>
+						<aas:idShort>basic_event_id</aas:idShort>
+						<aas:observed>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+							</aas:keys>
+						</aas:observed>
+					</aas:basicEvent>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:entity>
+						<aas:idShort>entity_id</aas:idShort>
+						<aas:assetRef>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+							</aas:keys>
+						</aas:assetRef>
+						<aas:statements>
+							<aas:submodelElement>
+								<aas:file>
+									<aas:idShort>file_ID</aas:idShort>
+									<aas:mimeType>file_mimetype</aas:mimeType>
+									<aas:value>file_value</aas:value>
+								</aas:file>
+							</aas:submodelElement>
+							<aas:submodelElement>
+								<aas:range>
+									<aas:idShort>range_id</aas:idShort>
+									<aas:valueType>int</aas:valueType>
+									<aas:min>10</aas:min>
+								</aas:range>
+							</aas:submodelElement>
+						</aas:statements>
+						<aas:entityType>CoManagedEntity</aas:entityType>
+					</aas:entity>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:multiLanguageProperty>
+						<aas:idShort>multi_language_property_id</aas:idShort>
+						<aas:valueId>
+							<aas:keys>
+								<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</aas:key>
+							</aas:keys>
+						</aas:valueId>
+						<aas:value>
+							<aas:langString lang="DE">Eine Beschreibung auf deutsch</aas:langString>
+							<aas:langString lang="EN">A description in english</aas:langString>
+						</aas:value>
+					</aas:multiLanguageProperty>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:range>
+						<aas:idShort>range_id</aas:idShort>
+						<aas:valueType>int</aas:valueType>
+						<aas:min>1</aas:min>
+						<aas:max>10</aas:max>
+					</aas:range>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:file>
+						<aas:idShort>file_id</aas:idShort>
+						<aas:mimeType>file_mimetype</aas:mimeType>
+						<aas:value>file_value</aas:value>
+					</aas:file>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:blob>
+						<aas:idShort>blob_id</aas:idShort>
+						<aas:value>YmxvYit2YWx1ZQ==</aas:value>
+						<aas:mimeType>blob_mimetype</aas:mimeType>
+					</aas:blob>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:referenceElement>
+						<aas:idShort>reference_ELE_ID</aas:idShort>
+						<aas:value>
+							<aas:keys>
+								<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</aas:key>
+							</aas:keys>
+						</aas:value>
+					</aas:referenceElement>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:submodelElementCollection>
+						<aas:idShort>submodelElementCollection_ID</aas:idShort>
+						<aas:allowDuplicates>true</aas:allowDuplicates>
+						<aas:ordered>false</aas:ordered>
+						<aas:value>
+							<aas:submodelElement>
+								<aas:file>
+									<aas:idShort>file_ID</aas:idShort>
+									<aas:mimeType>file_mimetype</aas:mimeType>
+									<aas:value>file_value</aas:value>
+								</aas:file>
+							</aas:submodelElement>
+							<aas:submodelElement>
+								<aas:blob>
+									<aas:idShort>blob_id</aas:idShort>
+									<aas:value>YmxvYit2YWx1ZQ==</aas:value>
+									<aas:mimeType>blob_mimetype</aas:mimeType>
+								</aas:blob>
+							</aas:submodelElement>
+						</aas:value>
+					</aas:submodelElementCollection>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:relationshipElement>
+						<aas:idShort>relationshipElement_ID</aas:idShort>
+						<aas:first>
+							<aas:keys>
+								<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#001</aas:key>
+							</aas:keys>
+						</aas:first>
+						<aas:second>
+							<aas:keys>
+								<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</aas:key>
+							</aas:keys>
+						</aas:second>
+					</aas:relationshipElement>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:operation>
+						<aas:idShort>operation_ID</aas:idShort>
+						<aas:inputVariable>
+							<!-- The schema only allows one opVar in inputVariable, one in outputVariable and one in inoutputVariable. The Metamodel allows 0..* in each -->
+							<!-- To be able to have multiple Vars they are surrounded by <aas:operationVariable>. This is also violating the Schema. -->
+							<aas:operationVariable>
+								<aas:value>
+									<aas:file>
+										<aas:idShort>file_ID</aas:idShort>
+										<aas:mimeType>file_mimetype</aas:mimeType>
+										<aas:value>file_value</aas:value>
+									</aas:file>
+								</aas:value>
+							</aas:operationVariable>
+							<aas:operationVariable>
+								<aas:value>
+									<aas:blob>
+										<aas:idShort>blob_ID</aas:idShort>
+										<aas:value>YmxvYit2YWx1ZQ==</aas:value>
+										<aas:mimeType>blob_mimetype</aas:mimeType>
+									</aas:blob>
+								</aas:value>
+							</aas:operationVariable>
+						</aas:inputVariable>
+						<aas:outputVariable>
+							<aas:operationVariable>
+								<aas:value>
+									<aas:referenceElement>
+										<aas:idShort>reference_ELE_ID</aas:idShort>
+										<aas:value>
+											<aas:keys>
+												<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</aas:key>
+											</aas:keys>
+										</aas:value>
+									</aas:referenceElement>
+								</aas:value>
+							</aas:operationVariable>
+						</aas:outputVariable>
+						<aas:inoutputVariable>
+							<aas:operationVariable>
+								<aas:value>
+									<aas:referenceElement>
+										<aas:idShort>reference_ELE_ID2</aas:idShort>
+										<aas:value>
+											<aas:keys>
+												<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#003</aas:key>
+											</aas:keys>
+										</aas:value>
+									</aas:referenceElement>
+								</aas:value>
+							</aas:operationVariable>
+						</aas:inoutputVariable>
+					</aas:operation>
+				</aas:submodelElement>
+			</aas:submodelElements>
+		</aas:submodel>
+	
+	</aas:submodels>
+	<aas:conceptDescriptions>
+		<!-- This ConceptDescription is populated with all possible fields -->
+		<aas:conceptDescription>
+			<aas:idShort>conceptDescription1</aas:idShort>
+			<aas:category>cs_categogy</aas:category>
+			<aas:description>
+				<aas:langString lang="EN">conceptDescription_Description</aas:langString>
+			</aas:description>
+			<aas:parent>
+				<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="ConceptDescription">cs_parent_id</aas:key>
+				</aas:keys>
+			</aas:parent>
+			<aas:identification idType="IRI">www.festo.com/dic/08111234</aas:identification>
+			<aas:administration>
+				<aas:version>1</aas:version>
+				<aas:revision>0</aas:revision>
+			</aas:administration>
+			<aas:embeddedDataSpecification>
+				<aas:dataSpecificationContent>
+					<aas:dataSpecificationIEC61360>
+						<IEC61360:preferredName>
+							<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+							<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+						</IEC61360:preferredName>
+						<IEC61360:shortName>
+							<IEC61360:langString lang="DE">N</IEC61360:langString>
+						</IEC61360:shortName>
+						<IEC61360:unit>1/min</IEC61360:unit>
+						<IEC61360:unitId>
+							<IEC61360:keys>
+								<IEC61360:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</IEC61360:key>
+							</IEC61360:keys>
+						</IEC61360:unitId>
+						<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+					</aas:dataSpecificationIEC61360>
+				</aas:dataSpecificationContent>
+				<aas:dataSpecification>
+					<aas:keys>
+						<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+					</aas:keys>
+				</aas:dataSpecification>
+			</aas:embeddedDataSpecification>
+			<aas:isCaseOf>
+				<aas:keys>
+					<aas:key idType="IRI" type="ConceptDescription" local="true">www.festo.com/dic/08111234</aas:key>
+					<aas:key idType="IRI" type="ConceptDescription" local="true">www.festo.com/dic/08111234_2</aas:key>
+				</aas:keys>
+			</aas:isCaseOf>
+		</aas:conceptDescription>
+		<!-- This is a ConceptDescription with only the minimal required information in it. To test for Nullpointers and such. -->
+		<aas:conceptDescription>
+			<aas:idShort>conceptDescription2</aas:idShort>
+			<aas:identification idType="IRI">www.festo.com/dic/08111234</aas:identification>
+		</aas:conceptDescription>
+	</aas:conceptDescriptions>
+</aas:aasenv>
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/java/org/eclipse/basyx/regression/docker/ITInXMLAAS.java b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/java/org/eclipse/basyx/regression/docker/ITInXMLAAS.java
new file mode 100644
index 0000000..a695129
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/java/org/eclipse/basyx/regression/docker/ITInXMLAAS.java
@@ -0,0 +1,119 @@
+package org.eclipse.basyx.regression.docker;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Map;
+
+import org.eclipse.basyx.aas.manager.ConnectedAssetAdministrationShellManager;
+import org.eclipse.basyx.aas.metamodel.api.parts.asset.IAsset;
+import org.eclipse.basyx.aas.metamodel.connected.ConnectedAssetAdministrationShell;
+import org.eclipse.basyx.aas.metamodel.map.descriptor.AASDescriptor;
+import org.eclipse.basyx.aas.metamodel.map.descriptor.ModelUrn;
+import org.eclipse.basyx.aas.registration.api.IAASRegistryService;
+import org.eclipse.basyx.aas.registration.memory.InMemoryRegistry;
+import org.eclipse.basyx.components.configuration.BaSyxContextConfiguration;
+import org.eclipse.basyx.components.configuration.BaSyxDockerConfiguration;
+import org.eclipse.basyx.submodel.metamodel.api.ISubModel;
+import org.eclipse.basyx.submodel.metamodel.api.identifier.IIdentifier;
+import org.eclipse.basyx.vab.protocol.api.IConnectorProvider;
+import org.eclipse.basyx.vab.protocol.http.connector.HTTPConnectorProvider;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ITInXMLAAS {
+	private static Logger logger = LoggerFactory.getLogger(ITInXMLAAS.class);
+
+	private static String registryUrl;
+	private IAASRegistryService registry;
+
+	private String aasShortId = "aas1";
+	private IIdentifier aasId = new ModelUrn("urn:de.FHG:devices.es.iese:aas:1.0:1:registryAAS#001");
+	private String aasEndpoint = "http://localhost:4000/registry/aas1/aas";
+	private String submodelShortId = "submodel1";
+	private String assetId = "asset1";
+
+	@BeforeClass
+	public static void setUpClass() {
+		logger.info("Running integration test...");
+
+		logger.info("Loading servlet configuration");
+		// Load the servlet configuration inside of the docker configuration from properties file
+		BaSyxContextConfiguration contextConfig = new BaSyxContextConfiguration();
+		contextConfig.loadFromResource(BaSyxContextConfiguration.DEFAULT_CONFIG_PATH);
+
+		// Load the docker environment configuration from properties file
+		logger.info("Loading docker configuration");
+		BaSyxDockerConfiguration dockerConfig = new BaSyxDockerConfiguration();
+		dockerConfig.loadFromResource(BaSyxDockerConfiguration.DEFAULT_CONFIG_PATH);
+
+		// registryUrl = "http://localhost:4000/registry";
+		registryUrl = "http://localhost:" + dockerConfig.getHostPort() + contextConfig.getContextPath();
+		logger.info("Registry URL for integration test: " + registryUrl);
+	}
+
+	/**
+	 * Before each test, a dummy registry is created and an AAS is added in the
+	 * registry
+	 */
+	@Before
+	public void setUp() {
+		try {
+			// Create a dummy registry to test integration of XML AAS
+			registry = new InMemoryRegistry();
+			AASDescriptor descriptor = new AASDescriptor(aasShortId, aasId, aasEndpoint);
+			registry.register(descriptor);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
+
+	/**
+	 * Remove registry entries after each test
+	 */
+	@After
+	public void tearDown() {
+	}
+
+
+	@Test
+	public void testGetSingleAAS() throws Exception {
+		ConnectedAssetAdministrationShell connectedAssetAdministrationShell = getConnectedAssetAdministrationShell();
+		assertEquals(aasShortId, connectedAssetAdministrationShell.getIdShort());
+	}
+
+	@Test
+	public void testGetSingleSubmodel() throws Exception {
+		ConnectedAssetAdministrationShell connectedAssetAdministrationShell = getConnectedAssetAdministrationShell();
+		Map<String, ISubModel> submodels = connectedAssetAdministrationShell.getSubModels();
+		ISubModel subModel = submodels.get(submodelShortId);
+		assertEquals(submodelShortId, subModel.getIdShort());
+	}
+
+	@Test
+	public void testGetSingleAsset() throws Exception {
+		ConnectedAssetAdministrationShell connectedAssetAdministrationShell = getConnectedAssetAdministrationShell();
+		IAsset asset = connectedAssetAdministrationShell.getAsset();
+		assertEquals(asset.getIdShort(), assetId);
+	}
+
+	/**
+	 * Get connected Asset Administration Shell from the registry
+	 * 
+	 * @return connected AAS
+	 * @throws Exception
+	 */
+	private ConnectedAssetAdministrationShell getConnectedAssetAdministrationShell() throws Exception {
+		// Create a ConnectedAssetAdministrationShell using a
+		// ConnectedAssetAdministrationShellManager
+		IConnectorProvider connectorProvider = new HTTPConnectorProvider();
+		ConnectedAssetAdministrationShellManager manager = new ConnectedAssetAdministrationShellManager(registry,
+				connectorProvider);
+
+		// return the connected AAS
+		return manager.retrieveAAS(aasId);
+	}
+}
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/.env b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/.env
new file mode 100644
index 0000000..226a4c9
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/.env
@@ -0,0 +1,5 @@
+BASYX_HOST_PORT=8083
+BASYX_CONTAINER_PORT=4000
+BASYX_IMAGE_NAME=basys/aas-xml
+BASYX_CONTAINER_NAME=aas-xml
+BASYX_IMAGE_TAG=0.0.1-SNAPSHOT
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/context.properties b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/context.properties
new file mode 100644
index 0000000..3abc9d0
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/context.properties
@@ -0,0 +1,4 @@
+contextPath=/xmlAAS
+contextHostname=localhost
+contextPort=4000
+xmlPath=src/test/resources/xml/in.xml
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/xml/in.xml b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/xml/in.xml
new file mode 100644
index 0000000..dee291f
--- /dev/null
+++ b/components/basys.components/basyx.components.docker/basyx.components.xmlAAS/src/test/resources/xml/in.xml
@@ -0,0 +1,566 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<aas:aasenv xmlns:aas="http://www.admin-shell.io/aas/2/0"
+	xmlns:IEC61360="http://www.admin-shell.io/IEC61360/2/0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://www.admin-shell.io/aas/2/0 AAS.xsd
+	http://www.admin-shell.io/IEC61360/2/0 IEC61360.xsd">
+	<aas:assetAdministrationShells>
+		<!-- This AAS is populated with all possible fields -->
+		<aas:assetAdministrationShell>
+			<aas:idShort>aas1</aas:idShort>
+			<aas:category>test_category</aas:category>
+			<aas:description>
+				<aas:langString lang="EN">aas_Description</aas:langString>
+				<aas:langString lang="DE">Beschreibung Verwaltungsschale</aas:langString>
+			</aas:description>
+			<aas:parent>
+				<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="AssetAdministrationShell">aas_parent_id</aas:key>
+				</aas:keys>
+			</aas:parent>
+			<aas:identification idType="IRI">www.admin-shell.io/aas-sample/1/0</aas:identification>
+			<aas:administration>
+				<aas:version>1</aas:version>
+				<aas:revision>0</aas:revision>
+			</aas:administration>
+			<aas:embeddedDataSpecification>
+				<aas:dataSpecificationContent>
+					<aas:dataSpecificationIEC61360>
+						<IEC61360:preferredName>
+							<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+							<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+						</IEC61360:preferredName>
+						<IEC61360:shortName>
+							<IEC61360:langString lang="DE">N</IEC61360:langString>
+						</IEC61360:shortName>
+						<IEC61360:unit>1/min</IEC61360:unit>
+						<IEC61360:unitId>
+							<IEC61360:keys>
+								<IEC61360:key idType="IRDI" local="false" type="GlobalReference">
+									0173-1#05-AAA650#002
+								</IEC61360:key>
+							</IEC61360:keys>
+						</IEC61360:unitId>
+						<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+					</aas:dataSpecificationIEC61360>
+				</aas:dataSpecificationContent>
+				<aas:dataSpecification>
+					<aas:keys>
+						<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+					</aas:keys>
+				</aas:dataSpecification>
+			</aas:embeddedDataSpecification>
+			<aas:derivedFrom>
+				<aas:keys>
+					<aas:key type="ReferenceElement" local="false" idType="IRI">http://pk.festo.com/3s7plfdrs35</aas:key>
+				</aas:keys>
+			</aas:derivedFrom>
+			<aas:assetRef>
+				<aas:keys>
+					<aas:key type="Asset" local="false" idType="IRI">http://pk.festo.com/3s7plfdrs35</aas:key>
+				</aas:keys>
+			</aas:assetRef>
+			<aas:submodelRefs>
+				<aas:submodelRef>
+					<aas:keys>
+						<aas:key type="Submodel" local="true" idType="IRI">"http://www.zvei.de/demo/submodel/12345679"</aas:key>
+					</aas:keys>
+				</aas:submodelRef>
+				<aas:submodelRef>
+					<aas:keys>
+						<aas:key type="Submodel" local="true" idType="IRI">"http://www.zvei.de/demo/submodel/12345679_2"</aas:key>
+					</aas:keys>
+				</aas:submodelRef>
+			</aas:submodelRefs>
+			<aas:views>
+				<!-- This View is populated with all possible fields -->
+				<aas:view>
+					<aas:idShort>SampleView</aas:idShort>
+					<aas:category>test_categogy</aas:category>
+					<aas:description>
+						<aas:langString lang="EN">View_Description</aas:langString>
+					</aas:description>
+					<aas:parent>
+						<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+						<aas:keys>
+							<aas:key idType="IRI" local="false" type="Submodel">view_parent_id</aas:key>
+						</aas:keys>
+					</aas:parent>
+					<aas:semanticId>
+						<aas:keys>
+							<aas:key idType="IRI" local="false" type="Submodel">view_semantic_id</aas:key>
+						</aas:keys>
+					</aas:semanticId>
+					<aas:embeddedDataSpecification>
+						<aas:dataSpecificationContent>
+							<aas:dataSpecificationIEC61360>
+								<IEC61360:preferredName>
+									<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+									<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+								</IEC61360:preferredName>
+								<IEC61360:shortName>
+									<IEC61360:langString lang="DE">N</IEC61360:langString>
+								</IEC61360:shortName>
+								<IEC61360:unit>1/min</IEC61360:unit>
+								<IEC61360:unitId>
+									<IEC61360:keys>
+										<IEC61360:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</IEC61360:key>
+									</IEC61360:keys>
+								</IEC61360:unitId>
+								<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+							</aas:dataSpecificationIEC61360>
+						</aas:dataSpecificationContent>
+						<aas:dataSpecification>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+							</aas:keys>
+						</aas:dataSpecification>
+					</aas:embeddedDataSpecification>
+					<aas:containedElements>
+						<aas:containedElementRef>
+							<aas:keys>
+								<aas:key type="Submodel" local="true" idType="IRI">"http://www.zvei.de/demo/submodel/12345679"</aas:key>
+								<aas:key type="Property" local="true" idType="IdShort">rotationSpeed</aas:key>
+							</aas:keys>
+						</aas:containedElementRef>
+					</aas:containedElements>
+				</aas:view>
+				<!-- This is a View with only the minimal required information in it. To test for Nullpointers and such. -->
+				<aas:view>
+					<aas:idShort>EmptyView</aas:idShort>
+					<aas:containedElements></aas:containedElements>
+				</aas:view>
+			</aas:views>
+			<aas:conceptDictionaries>
+				<aas:conceptDictionary>
+					<aas:idShort>SampleDic</aas:idShort>
+					<aas:conceptDescriptionRefs>
+						<aas:conceptDescriptionRef>
+							<aas:keys>
+								<aas:key type="ConceptDescription" local="true" idType="IRDI">0173-1#02-BAA120#007</aas:key>
+							</aas:keys>
+						</aas:conceptDescriptionRef>
+						<aas:conceptDescriptionRef>
+							<aas:keys>
+								<aas:key type="ConceptDescription" local="true" idType="IRDI">0173-1#02-BAA120#007</aas:key>
+							</aas:keys>
+						</aas:conceptDescriptionRef>
+					</aas:conceptDescriptionRefs>
+				</aas:conceptDictionary>
+			</aas:conceptDictionaries>
+		</aas:assetAdministrationShell>
+		
+	</aas:assetAdministrationShells>
+	<aas:assets>
+		<!-- This Asset is populated with all possible fields -->
+		<aas:asset>
+			<aas:idShort>asset1</aas:idShort>
+			<aas:category>asset1_categogy</aas:category>
+			<aas:description>
+				<aas:langString lang="EN">asset1_Description</aas:langString>
+			</aas:description>
+			<aas:parent>
+				<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="Asset">asset_parent_id</aas:key>
+				</aas:keys>
+			</aas:parent>
+			<aas:identification idType="IRI">http://pk.festo.com/3s7plfdrs35</aas:identification>
+			<aas:administration>
+				<aas:version>1</aas:version>
+				<aas:revision>0</aas:revision>
+			</aas:administration>
+			<aas:embeddedDataSpecification>
+				<aas:dataSpecificationContent>
+					<aas:dataSpecificationIEC61360>
+						<IEC61360:preferredName>
+							<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+							<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+						</IEC61360:preferredName>
+						<IEC61360:shortName>
+							<IEC61360:langString lang="DE">N</IEC61360:langString>
+						</IEC61360:shortName>
+						<IEC61360:unit>1/min</IEC61360:unit>
+						<IEC61360:unitId>
+							<IEC61360:keys>
+								<IEC61360:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</IEC61360:key>
+							</IEC61360:keys>
+						</IEC61360:unitId>
+						<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+					</aas:dataSpecificationIEC61360>
+				</aas:dataSpecificationContent>
+				<aas:dataSpecification>
+					<aas:keys>
+						<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+					</aas:keys>
+				</aas:dataSpecification>
+			</aas:embeddedDataSpecification>
+			<aas:assetIdentificationModelRef>
+				<aas:keys>
+					<aas:key type="ConceptDescription" local="true" idType="IRI">www.festo.com/dic/08111234</aas:key>
+				</aas:keys>
+			</aas:assetIdentificationModelRef>
+			<aas:kind>Instance</aas:kind>
+		</aas:asset>
+		<aas:asset>
+			<aas:idShort>emptyAsset</aas:idShort>
+			<aas:identification idType="IRI">http://pk.festo.com/q30j38dlajx</aas:identification>
+		</aas:asset>
+	</aas:assets>
+	<aas:submodels>
+		<!-- This Submodel is populated with all possible fields -->
+		<aas:submodel>
+			<aas:idShort>submodel1</aas:idShort>
+			<aas:category>submodel1_categogy</aas:category>
+			<aas:description>
+				<aas:langString lang="EN">submode1_decription</aas:langString>
+			</aas:description>
+			<aas:parent>
+				<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="Submodel">submodel_parent_id</aas:key>
+				</aas:keys>
+			</aas:parent>
+			<aas:identification idType="IRI">http://www.zvei.de/demo/submodel/12345679</aas:identification>
+			<aas:administration>
+				<aas:version>1</aas:version>
+				<aas:revision>0</aas:revision>
+			</aas:administration>
+			<aas:kind>Instance</aas:kind>
+			<aas:semanticId>
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+				</aas:keys>
+			</aas:semanticId>
+			<aas:qualifier>
+				<aas:qualifiers>
+					<aas:formula>
+						<aas:dependsOnRefs>
+							<aas:reference>
+								<aas:keys>
+									<aas:key local="false" type="GlobalReference" idType="IRDI">qualifier_reference</aas:key>
+								</aas:keys>
+							</aas:reference>
+						</aas:dependsOnRefs>
+					</aas:formula>
+				</aas:qualifiers>
+				<aas:qualifiers>
+					<aas:qualifier>
+						<aas:valueId>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+							</aas:keys>
+						</aas:valueId>
+						<aas:value>qualifierValue</aas:value>
+						<aas:type>qualifierType</aas:type>
+						<aas:valueType>valueType</aas:valueType>
+						<aas:semanticId>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="GlobalReference">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+							</aas:keys>
+						</aas:semanticId>
+					</aas:qualifier>
+				</aas:qualifiers>
+			</aas:qualifier>
+			<aas:embeddedDataSpecification>
+				<aas:dataSpecificationContent>
+					<aas:dataSpecificationIEC61360>
+						<IEC61360:preferredName>
+							<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+							<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+						</IEC61360:preferredName>
+						<IEC61360:shortName>
+							<IEC61360:langString lang="DE">N</IEC61360:langString>
+						</IEC61360:shortName>
+						<IEC61360:unit>1/min</IEC61360:unit>
+						<IEC61360:unitId>
+							<IEC61360:keys>
+								<IEC61360:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</IEC61360:key>
+							</IEC61360:keys>
+						</IEC61360:unitId>
+						<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+					</aas:dataSpecificationIEC61360>
+				</aas:dataSpecificationContent>
+				<aas:dataSpecification>
+					<aas:keys>
+						<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+					</aas:keys>
+				</aas:dataSpecification>
+			</aas:embeddedDataSpecification>
+			<aas:submodelElements>
+				<aas:submodelElement>
+					<aas:property>
+						<aas:idShort>rotationSpeed</aas:idShort>
+						<aas:category>VARIABLE</aas:category>
+						<aas:semanticId>
+							<aas:keys>
+								<aas:key idType="IRI" type="ConceptDescription" local="true">www.festo.com/dic/08111234</aas:key>
+							</aas:keys>
+						</aas:semanticId>
+						<aas:qualifier>
+							<aas:qualifiers>
+								<aas:qualifier>
+									<aas:valueId>
+										<aas:keys>
+											<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+										</aas:keys>
+									</aas:valueId>
+									<aas:value>qualifierValue</aas:value>
+									<aas:type>qualifierType</aas:type>
+									<aas:valueType>valueType</aas:valueType>
+									<aas:semanticId>
+										<aas:keys>
+											<aas:key idType="IRI" local="false" type="GlobalReference">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+										</aas:keys>
+									</aas:semanticId>
+								</aas:qualifier>
+							</aas:qualifiers>
+						</aas:qualifier>
+						<aas:value>2000</aas:value>
+						<aas:valueType>double</aas:valueType>
+					</aas:property>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:property>
+						<aas:idShort>emptyDouble</aas:idShort>
+						<aas:valueType>double</aas:valueType>
+					</aas:property>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:basicEvent>
+						<aas:idShort>basic_event_id</aas:idShort>
+						<aas:observed>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+							</aas:keys>
+						</aas:observed>
+					</aas:basicEvent>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:entity>
+						<aas:idShort>entity_id</aas:idShort>
+						<aas:assetRef>
+							<aas:keys>
+								<aas:key idType="IRI" local="false" type="Submodel">http://www.zvei.de/demo/submodelDefinitions/87654346</aas:key>
+							</aas:keys>
+						</aas:assetRef>
+						<aas:statements>
+							<aas:submodelElement>
+								<aas:file>
+									<aas:idShort>file_ID</aas:idShort>
+									<aas:mimeType>file_mimetype</aas:mimeType>
+									<aas:value>file_value</aas:value>
+								</aas:file>
+							</aas:submodelElement>
+							<aas:submodelElement>
+								<aas:range>
+									<aas:idShort>range_id</aas:idShort>
+									<aas:valueType>int</aas:valueType>
+									<aas:min>10</aas:min>
+								</aas:range>
+							</aas:submodelElement>
+						</aas:statements>
+						<aas:entityType>CoManagedEntity</aas:entityType>
+					</aas:entity>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:multiLanguageProperty>
+						<aas:idShort>multi_language_property_id</aas:idShort>
+						<aas:valueId>
+							<aas:keys>
+								<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</aas:key>
+							</aas:keys>
+						</aas:valueId>
+						<aas:value>
+							<aas:langString lang="DE">Eine Beschreibung auf deutsch</aas:langString>
+							<aas:langString lang="EN">A description in english</aas:langString>
+						</aas:value>
+					</aas:multiLanguageProperty>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:range>
+						<aas:idShort>range_id</aas:idShort>
+						<aas:valueType>int</aas:valueType>
+						<aas:min>1</aas:min>
+						<aas:max>10</aas:max>
+					</aas:range>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:file>
+						<aas:idShort>file_id</aas:idShort>
+						<aas:mimeType>file_mimetype</aas:mimeType>
+						<aas:value>file_value</aas:value>
+					</aas:file>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:blob>
+						<aas:idShort>blob_id</aas:idShort>
+						<aas:value>YmxvYit2YWx1ZQ==</aas:value>
+						<aas:mimeType>blob_mimetype</aas:mimeType>
+					</aas:blob>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:referenceElement>
+						<aas:idShort>reference_ELE_ID</aas:idShort>
+						<aas:value>
+							<aas:keys>
+								<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</aas:key>
+							</aas:keys>
+						</aas:value>
+					</aas:referenceElement>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:submodelElementCollection>
+						<aas:idShort>submodelElementCollection_ID</aas:idShort>
+						<aas:allowDuplicates>true</aas:allowDuplicates>
+						<aas:ordered>false</aas:ordered>
+						<aas:value>
+							<aas:submodelElement>
+								<aas:file>
+									<aas:idShort>file_ID</aas:idShort>
+									<aas:mimeType>file_mimetype</aas:mimeType>
+									<aas:value>file_value</aas:value>
+								</aas:file>
+							</aas:submodelElement>
+							<aas:submodelElement>
+								<aas:blob>
+									<aas:idShort>blob_id</aas:idShort>
+									<aas:value>YmxvYit2YWx1ZQ==</aas:value>
+									<aas:mimeType>blob_mimetype</aas:mimeType>
+								</aas:blob>
+							</aas:submodelElement>
+						</aas:value>
+					</aas:submodelElementCollection>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:relationshipElement>
+						<aas:idShort>relationshipElement_ID</aas:idShort>
+						<aas:first>
+							<aas:keys>
+								<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#001</aas:key>
+							</aas:keys>
+						</aas:first>
+						<aas:second>
+							<aas:keys>
+								<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</aas:key>
+							</aas:keys>
+						</aas:second>
+					</aas:relationshipElement>
+				</aas:submodelElement>
+				<aas:submodelElement>
+					<aas:operation>
+						<aas:idShort>operation_ID</aas:idShort>
+						<aas:inputVariable>
+							<!-- The schema only allows one opVar in inputVariable, one in outputVariable and one in inoutputVariable. The Metamodel allows 0..* in each -->
+							<!-- To be able to have multiple Vars they are surrounded by <aas:operationVariable>. This is also violating the Schema. -->
+							<aas:operationVariable>
+								<aas:value>
+									<aas:file>
+										<aas:idShort>file_ID</aas:idShort>
+										<aas:mimeType>file_mimetype</aas:mimeType>
+										<aas:value>file_value</aas:value>
+									</aas:file>
+								</aas:value>
+							</aas:operationVariable>
+							<aas:operationVariable>
+								<aas:value>
+									<aas:blob>
+										<aas:idShort>blob_ID</aas:idShort>
+										<aas:value>YmxvYit2YWx1ZQ==</aas:value>
+										<aas:mimeType>blob_mimetype</aas:mimeType>
+									</aas:blob>
+								</aas:value>
+							</aas:operationVariable>
+						</aas:inputVariable>
+						<aas:outputVariable>
+							<aas:operationVariable>
+								<aas:value>
+									<aas:referenceElement>
+										<aas:idShort>reference_ELE_ID</aas:idShort>
+										<aas:value>
+											<aas:keys>
+												<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</aas:key>
+											</aas:keys>
+										</aas:value>
+									</aas:referenceElement>
+								</aas:value>
+							</aas:operationVariable>
+						</aas:outputVariable>
+						<aas:inoutputVariable>
+							<aas:operationVariable>
+								<aas:value>
+									<aas:referenceElement>
+										<aas:idShort>reference_ELE_ID2</aas:idShort>
+										<aas:value>
+											<aas:keys>
+												<aas:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#003</aas:key>
+											</aas:keys>
+										</aas:value>
+									</aas:referenceElement>
+								</aas:value>
+							</aas:operationVariable>
+						</aas:inoutputVariable>
+					</aas:operation>
+				</aas:submodelElement>
+			</aas:submodelElements>
+		</aas:submodel>
+
+	</aas:submodels>
+	<aas:conceptDescriptions>
+		<!-- This ConceptDescription is populated with all possible fields -->
+		<aas:conceptDescription>
+			<aas:idShort>conceptDescription1</aas:idShort>
+			<aas:category>cs_categogy</aas:category>
+			<aas:description>
+				<aas:langString lang="EN">conceptDescription_Description</aas:langString>
+			</aas:description>
+			<aas:parent>
+				<!-- Parent is currently a String in the Schema. But it should be a Reference. -->
+				<aas:keys>
+					<aas:key idType="IRI" local="false" type="ConceptDescription">cs_parent_id</aas:key>
+				</aas:keys>
+			</aas:parent>
+			<aas:identification idType="IRI">www.festo.com/dic/08111234</aas:identification>
+			<aas:administration>
+				<aas:version>1</aas:version>
+				<aas:revision>0</aas:revision>
+			</aas:administration>
+			<aas:embeddedDataSpecification>
+				<aas:dataSpecificationContent>
+					<aas:dataSpecificationIEC61360>
+						<IEC61360:preferredName>
+							<IEC61360:langString lang="DE">Drehzahl</IEC61360:langString>
+							<IEC61360:langString lang="EN">Rotation Speed</IEC61360:langString>
+						</IEC61360:preferredName>
+						<IEC61360:shortName>
+							<IEC61360:langString lang="DE">N</IEC61360:langString>
+						</IEC61360:shortName>
+						<IEC61360:unit>1/min</IEC61360:unit>
+						<IEC61360:unitId>
+							<IEC61360:keys>
+								<IEC61360:key local="false" type="GlobalReference" idType="IRDI">0173-1#05-AAA650#002</IEC61360:key>
+							</IEC61360:keys>
+						</IEC61360:unitId>
+						<IEC61360:valueFormat>NR1..5</IEC61360:valueFormat>
+					</aas:dataSpecificationIEC61360>
+				</aas:dataSpecificationContent>
+				<aas:dataSpecification>
+					<aas:keys>
+						<aas:key idType="IRI" local="false" type="GlobalReference">www.admin-shell.io/DataSpecificationTemplates/DataSpecificationIEC61360</aas:key>
+					</aas:keys>
+				</aas:dataSpecification>
+			</aas:embeddedDataSpecification>
+			<aas:isCaseOf>
+				<aas:keys>
+					<aas:key idType="IRI" type="ConceptDescription" local="true">www.festo.com/dic/08111234</aas:key>
+					<aas:key idType="IRI" type="ConceptDescription" local="true">www.festo.com/dic/08111234_2</aas:key>
+				</aas:keys>
+			</aas:isCaseOf>
+		</aas:conceptDescription>
+		<!-- This is a ConceptDescription with only the minimal required information in it. To test for Nullpointers and such. -->
+		<aas:conceptDescription>
+			<aas:idShort>conceptDescription2</aas:idShort>
+			<aas:identification idType="IRI">www.festo.com/dic/08111234</aas:identification>
+		</aas:conceptDescription>
+	</aas:conceptDescriptions>
+</aas:aasenv>
\ No newline at end of file
diff --git a/components/basys.components/basyx.components.docker/pom.xml b/components/basys.components/basyx.components.docker/pom.xml
index 9151452..26f35fd 100644
--- a/components/basys.components/basyx.components.docker/pom.xml
+++ b/components/basys.components/basyx.components.docker/pom.xml
@@ -18,6 +18,7 @@
 	<modules>
 		<module>basyx.components.simple</module>
 		<module>basyx.components.sqlregistry</module>
+		<module>basyx.components.xmlAAS</module>
 	</modules>
 	
 	<build>
