diff --git a/citygml4j-quality-ade/pom.xml b/citygml4j-quality-ade/pom.xml
index 78cbccd56b0a663cf186954999ee3db0eccc51fb..e1b6881fc9ca08d06cdee270ce8cb1fcce1cc2ad 100644
--- a/citygml4j-quality-ade/pom.xml
+++ b/citygml4j-quality-ade/pom.xml
@@ -4,7 +4,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>de.hft.stuttgart</groupId>
 	<artifactId>citygml4j-quality-ade</artifactId>
-	<version>0.1.0</version>
+	<version>0.1.1</version>
 
 	<properties>
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java
index 295a709ff062fa18cbb4476dd56c88421d6a51f2..ee927deb9b84866a1968181b2f15cb17ccce5d73 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java
@@ -28,7 +28,7 @@ import de.hft.stuttgart.quality.marshaller.QualityAdeUnmarshaller;
 
 public class QualityADEContext implements ADEContext {
 	
-	private final List<ADEModule> modules = Collections.singletonList(QualityADEModule.V0_1);
+	private final List<ADEModule> modules = Collections.singletonList(QualityADEModule.V0_1_1);
 
 	@Override
 	public List<ADEModule> getADEModules() {
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java
index e54dd3762a23f4acc2ff48ca65e963f77fa04811..b9dbfff29e9adbb13e2d35ec285259a6e82377e1 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java
@@ -32,9 +32,9 @@ import de.hft.stuttgart.quality.model.Validation;
 
 public class QualityADEModule extends ADEModule {
 
-	public static final String NAMESPACE_URI = "https://transfer.hft-stuttgart.de/pages/qualityade/0.1";
+	public static final String NAMESPACE_URI = "https://transfer.hft-stuttgart.de/pages/qualityade/0.1.1";
 
-	public static final QualityADEModule V0_1 = new QualityADEModule();
+	public static final QualityADEModule V0_1_1 = new QualityADEModule();
 	
     private HashMap<String, Class<? extends AbstractFeature>> features;
     private HashSet<String> featureProperties;
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeMarshaller.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeMarshaller.java
index c3a9ee6efa23780fcbc56bacdc06c9f5505cd823..37acd130dd7e62e150b6199bc7302db68bce2d97 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeMarshaller.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/marshaller/QualityAdeMarshaller.java
@@ -90,7 +90,8 @@ public class QualityAdeMarshaller implements ADEMarshaller {
 			lock.lock();
 			try {
 				if (elementMapper == null) {
-					elementMapper = TypeMapper.<JAXBElement<?>>create().with(Validation.class, this::createValidation)
+					elementMapper = TypeMapper.<JAXBElement<?>>create()
+							.with(Validation.class, this::createValidation)
 							.with(ValidationResult.class, this::createValidationResult);
 				}
 			} finally {
@@ -106,7 +107,8 @@ public class QualityAdeMarshaller implements ADEMarshaller {
 			lock.lock();
 			try {
 				if (typeMapper == null) {
-					typeMapper = TypeMapper.create().with(Validation.class, this::marshalValidation)
+					typeMapper = TypeMapper.create()
+							.with(Validation.class, this::marshalValidation)
 							.with(ValidationResult.class, this::marshalValidationResult)
 							.with(ConsecutivePointsSame.class, this::marshalConsecutivePointsSame)
 							.with(TooFewPoints.class, this::marshalTooFewPoints)
@@ -139,7 +141,7 @@ public class QualityAdeMarshaller implements ADEMarshaller {
 	}
 
 	private ValidationType marshalValidation(Validation src) {
-		ValidationType dest = factory.createValidationType();
+		ValidationType dest = new ValidationType();
 
 		if (src.isSetDateTime()) {
 			dest.setValidationDate(src.getValidationDate());
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeMissingType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeMissingType.java
index 65a515ad38316e5232d0bc1408d1b805feda26f5..c2cbb61b0551b5bb2cae772af76428328b262f4a 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeMissingType.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeMissingType.java
@@ -17,7 +17,7 @@ package de.hft.stuttgart.quality.model.jaxb;
 
 import javax.xml.bind.annotation.XmlRootElement;
 
-@XmlRootElement(name = "SEM_ATTRIBUTE_MISSING")
+@XmlRootElement(name = "SE_ATTRIBUTE_MISSING")
 public class AttributeMissingType extends ValidationErrorType {
 	
 	private String childId;
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeWrongValueType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeWrongValueType.java
index ca4b04585be3d8d8fa8f51743bfbbc3330d1a7d4..6ea84b507655961fcd19c8d2eea67608b7e669ec 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeWrongValueType.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AttributeWrongValueType.java
@@ -17,7 +17,7 @@ package de.hft.stuttgart.quality.model.jaxb;
 
 import javax.xml.bind.annotation.XmlRootElement;
 
-@XmlRootElement(name = "SEM_ATTRIBUTE_WRONG_VALUE")
+@XmlRootElement(name = "SE_ATTRIBUTE_WRONG_VALUE")
 public class AttributeWrongValueType extends ValidationErrorType {
 
 	private String childId;
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorId.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorId.java
index 98da8d110c56f677d62e44c10548716eaf918691..cb34d11c8af741170f2d89224cee993d8a4cebcd 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorId.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ErrorId.java
@@ -25,6 +25,6 @@ public enum ErrorId {
 	GE_P_INTERSECTING_RINGS, GE_P_HOLE_OUTSIDE, GE_P_ORIENTATION_RINGS_SAME, GE_P_INNER_RINGS_NESTED,
 	GE_S_TOO_FEW_POLYGONS, GE_S_NOT_CLOSED, GE_S_NON_MANIFOLD_EDGE, GE_S_POLYGON_WRONG_ORIENTATION,
 	GE_S_ALL_POLYGONS_WRONG_ORIENTATION, GE_S_NON_MANIFOLD_VERTEX, GE_S_SELF_INTERSECTION,
-	GE_S_MULTIPLE_CONNECTED_COMPONENTS, SEM_ATTRIBUTE_WRONG_VALUE, SEM_ATTRIBUTE_MISSING
+	GE_S_MULTIPLE_CONNECTED_COMPONENTS, SE_ATTRIBUTE_WRONG_VALUE, SE_ATTRIBUTE_MISSING
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RequirementId.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RequirementId.java
index 7d74ff185df6ac4cfa5c0f1573b01196e9f76005..851382c29b104f65c000aed4b4a0c5fc806150a2 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RequirementId.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RequirementId.java
@@ -25,6 +25,6 @@ public enum RequirementId {
 	R_GE_P_ORIENTATION_RINGS_SAME, R_GE_P_INNER_RINGS_NESTED, R_GE_S_TOO_FEW_POLYGONS, R_GE_S_NOT_CLOSED,
 	R_GE_S_NON_MANIFOLD_EDGE, R_GE_S_POLYGON_WRONG_ORIENTATION, R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION,
 	R_GE_S_NON_MANIFOLD_VERTEX, R_GE_S_SELF_INTERSECTION, R_GE_S_MULTIPLE_CONNECTED_COMPONENTS,
-	R_SEM_ATTRIBUTES_EXISTING, R_SEM_ATTRIBUTES_CORRECT
+	R_SE_ATTRIBUTES_EXISTING, R_SE_ATTRIBUTES_CORRECT
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/package-info.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/package-info.java
index 74978949cb5094f37bd2c220fc82d40a293ab3cc..5f97e8e0db48b4460d44929603cb934fd7302b62 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/package-info.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/package-info.java
@@ -13,6 +13,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@javax.xml.bind.annotation.XmlSchema(namespace = "https://transfer.hft-stuttgart.de/pages/qualityade/0.1", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = {
-		@javax.xml.bind.annotation.XmlNs(namespaceURI = "https://transfer.hft-stuttgart.de/pages/qualityade/0.1", prefix = "qual") })
+@javax.xml.bind.annotation.XmlSchema(namespace = "https://transfer.hft-stuttgart.de/pages/qualityade/0.1.1", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = {
+		@javax.xml.bind.annotation.XmlNs(namespaceURI = "https://transfer.hft-stuttgart.de/pages/qualityade/0.1.1", prefix = "qual") })
 package de.hft.stuttgart.quality.model.jaxb;
diff --git a/citygml4j-quality-ade/src/main/resources/qualityAde.xsd b/citygml4j-quality-ade/src/main/resources/qualityAde.xsd
index 77ac51313db84f6500116df971f7fa52f338609d..8234ba0e95e63a46dea84bd2035c850ebca267d1 100644
--- a/citygml4j-quality-ade/src/main/resources/qualityAde.xsd
+++ b/citygml4j-quality-ade/src/main/resources/qualityAde.xsd
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-	xmlns:qual="https://transfer.hft-stuttgart.de/pages/qualityade/0.1"
-	targetNamespace="https://transfer.hft-stuttgart.de/pages/qualityade/0.1"
+	xmlns:qual="https://transfer.hft-stuttgart.de/pages/qualityade/0.1.1"
+	targetNamespace="https://transfer.hft-stuttgart.de/pages/qualityade/0.1.1"
 	xmlns:core="http://www.opengis.net/citygml/2.0"
 	xmlns:bldg="http://www.opengis.net/citygml/building/2.0"
 	xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified"
@@ -228,7 +228,7 @@
 		</sequence>
 	</complexType>
 
-	<complexType name="SEM_ATTRIBUTE_WRONG_VALUE">
+	<complexType name="SE_ATTRIBUTE_WRONG_VALUE">
 		<sequence>
 			<element name="childId" type="string" minOccurs="0"/>
 			<element name="attributeName" type="string" />
@@ -236,7 +236,7 @@
 		</sequence>
 	</complexType>
 
-	<complexType name="SEM_ATTRIBUTE_MISSING">
+	<complexType name="SE_ATTRIBUTE_MISSING">
 		<sequence>
 			<element name="childId" type="string" minOccurs="0" />
 			<element name="attributeName" type="string" />
@@ -307,11 +307,11 @@
 				type="qual:GE_S_MULTIPLE_CONNECTED_COMPONENTS" minOccurs="0"
 				maxOccurs="unbounded" />
 
-			<element name="SEM_ATTRIBUTE_WRONG_VALUE"
-				type="qual:SEM_ATTRIBUTE_WRONG_VALUE" minOccurs="0"
+			<element name="SE_ATTRIBUTE_WRONG_VALUE"
+				type="qual:SE_ATTRIBUTE_WRONG_VALUE" minOccurs="0"
 				maxOccurs="unbounded" />
-			<element name="SEM_ATTRIBUTE_MISSING"
-				type="qual:SEM_ATTRIBUTE_MISSING" minOccurs="0"
+			<element name="SE_ATTRIBUTE_MISSING"
+				type="qual:SE_ATTRIBUTE_MISSING" minOccurs="0"
 				maxOccurs="unbounded" />
 		</sequence>
 		<attribute name="result" type="qual:result" />
@@ -341,8 +341,8 @@
 			<enumeration value="R_GE_S_NON_MANIFOLD_VERTEX" />
 			<enumeration value="R_GE_S_SELF_INTERSECTION" />
 			<enumeration value="R_GE_S_MULTIPLE_CONNECTED_COMPONENTS" />
-			<enumeration value="R_SEM_ATTRIBUTES_EXISTING" />
-			<enumeration value="R_SEM_ATTRIBUTES_CORRECT" />
+			<enumeration value="R_SE_ATTRIBUTES_EXISTING" />
+			<enumeration value="R_SE_ATTRIBUTES_CORRECT" />
 		</restriction>
 	</simpleType>
 
@@ -469,8 +469,8 @@
 			<enumeration value="GE_S_NON_MANIFOLD_VERTEX" />
 			<enumeration value="GE_S_SELF_INTERSECTION" />
 			<enumeration value="GE_S_MULTIPLE_CONNECTED_COMPONENTS" />
-			<enumeration value="SEM_ATTRIBUTE_WRONG_VALUE" />
-			<enumeration value="SEM_ATTRIBUTE_MISSING" />
+			<enumeration value="SE_ATTRIBUTE_WRONG_VALUE" />
+			<enumeration value="SE_ATTRIBUTE_MISSING" />
 		</restriction>
 	</simpleType>
 
diff --git a/citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java b/citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java
index dcb5d86a74ab5f7453da03bacb3f051bf85c3aaf..07bc45a0cf5976917cb4cf121eda13d20b7fb1ba 100644
--- a/citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java
+++ b/citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java
@@ -605,6 +605,7 @@ class QualityAdeTests {
 		error.setGeneric(true);
 		result.getErrors().add(error);
 		byte[] gml = writeCityGml(model);
+		System.out.println(new String(gml));
 		model = readCityGml(gml);
 
 		AbstractCityObject co = model.getCityObjectMember().get(0).getCityObject();
@@ -1287,7 +1288,7 @@ class QualityAdeTests {
 			throws ADEException, CityGMLBuilderException, CityGMLReadException {
 		CityGMLContext context = CityGMLContext.getInstance();
 		List<ADEContext> adeContexts = context.getADEContexts();
-		if (adeContexts == null || adeContexts.isEmpty()) {
+		if (adeContexts.isEmpty()) {
 			for (ADEContext adeContext : ServiceLoader.load(ADEContext.class)) {
 				context.registerADEContext(adeContext);
 			}
@@ -1301,7 +1302,7 @@ class QualityAdeTests {
 			System.out.print(
 					"[" + event.getLocator().getLineNumber() + "," + event.getLocator().getColumnNumber() + "] ");
 			System.out.println(event.getMessage());
-			return true;
+			throw new IllegalStateException(event.getLinkedException());
 		});
 		CityModel cityModel;
 		try (CityGMLReader reader = in.createCityGMLReader("?", input)) {
@@ -1399,7 +1400,7 @@ class QualityAdeTests {
 			writer.setPrefixes(CityGMLVersion.DEFAULT);
 			writer.setPrefix("qual", QualityADEModule.NAMESPACE_URI);
 			writer.setSchemaLocation(QualityADEModule.NAMESPACE_URI,
-					"https://transfer.hft-stuttgart.de/pages/qualityade/0.1/qualityAde.xsd");
+					"https://transfer.hft-stuttgart.de/pages/qualityade/0.1.1/qualityAde.xsd");
 			writer.setSchemaLocations(CityGMLVersion.DEFAULT);
 			writer.write(model);
 			return out.toByteArray();
diff --git a/public/0.1.1/qualityAde.xsd b/public/0.1.1/qualityAde.xsd
new file mode 100644
index 0000000000000000000000000000000000000000..8234ba0e95e63a46dea84bd2035c850ebca267d1
--- /dev/null
+++ b/public/0.1.1/qualityAde.xsd
@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+	xmlns:qual="https://transfer.hft-stuttgart.de/pages/qualityade/0.1.1"
+	targetNamespace="https://transfer.hft-stuttgart.de/pages/qualityade/0.1.1"
+	xmlns:core="http://www.opengis.net/citygml/2.0"
+	xmlns:bldg="http://www.opengis.net/citygml/building/2.0"
+	xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified"
+	version="1.0">
+	<import namespace="http://www.opengis.net/citygml/2.0"
+		schemaLocation="http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd" />
+	<import namespace="http://www.opengis.net/citygml/building/2.0"
+		schemaLocation="http://schemas.opengis.net/citygml/building/2.0/building.xsd" />
+	<import
+		namespace="http://www.opengis.net/citygml/appearance/2.0"
+		schemaLocation="http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd" />
+	<import namespace="http://www.opengis.net/citygml/generics/2.0"
+		schemaLocation="http://schemas.opengis.net/citygml/generics/2.0/generics.xsd" />
+	<import namespace="http://www.opengis.net/gml"
+		schemaLocation="http://schemas.opengis.net/gml/2.1.2/gml.xsd" />
+
+	<element name="validationResult"
+		type="qual:validationResultType"
+		substitutionGroup="core:_GenericApplicationPropertyOfCityObject" />
+
+	<simpleType name="result" final="restriction">
+		<annotation>
+			<documentation>Enumeration for status of check result</documentation>
+		</annotation>
+		<restriction base="string">
+			<enumeration value="ERROR">
+				<annotation>
+					<documentation>One or more errors were found</documentation>
+				</annotation>
+			</enumeration>
+			<enumeration value="NOT_CHECKED">
+				<annotation>
+					<documentation>Feature was not checked</documentation>
+				</annotation>
+			</enumeration>
+			<enumeration value="OK">
+				<annotation>
+					<documentation>No errors were found</documentation>
+				</annotation>
+			</enumeration>
+		</restriction>
+	</simpleType>
+
+	<complexType name="GE_R_CONSECUTIVE_POINTS_SAME">
+		<annotation>
+			<documentation>Consecutive point are the same</documentation>
+		</annotation>
+		<sequence>
+			<element name="linearRingId" type="string" />
+			<element name="vertex1" type="gml:DirectPositionType" />
+			<element name="vertex2" type="gml:DirectPositionType" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_R_TOO_FEW_POINTS">
+		<sequence>
+			<element name="linearRingId" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_R_SELF_INTERSECTION">
+		<sequence>
+			<element name="linearRingId" type="string" />
+			<element name="type" type="qual:ringSelfIntType" />
+			<element name="edge1" type="qual:edgeType" minOccurs="0" />
+			<element name="edge2" type="qual:edgeType" minOccurs="0" />
+			<element name="vertex1" type="gml:DirectPositionType"
+				minOccurs="0" />
+			<element name="vertex2" type="gml:DirectPositionType"
+				minOccurs="0" />
+		</sequence>
+	</complexType>
+
+	<simpleType name="ringSelfIntType">
+		<restriction base="string">
+			<enumeration value="DUPLICATE_POINT" />
+			<enumeration value="POINT_TOUCHES_EDGE" />
+			<enumeration value="EDGE_INTERSECTS_EDGE" />
+		</restriction>
+	</simpleType>
+
+	<complexType name="edgeType">
+		<sequence>
+			<element name="from" type="gml:DirectPositionType" />
+			<element name="to" type="gml:DirectPositionType" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_R_NOT_CLOSED">
+		<sequence>
+			<element name="linearRingId" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_P_INTERIOR_DISCONNECTED">
+		<sequence>
+			<element name="polygonId" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_P_INTERSECTING_RINGS">
+		<sequence>
+			<element name="polygonId" type="string" />
+			<element name="linearRingId1" type="string" />
+			<element name="linearRingId2" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_P_INNER_RINGS_NESTED">
+		<sequence>
+			<element name="polygonId" type="string" />
+			<element name="linearRingId1" type="string" />
+			<element name="linearRingId2" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_P_HOLE_OUTSIDE">
+		<sequence>
+			<element name="polygonId" type="string" />
+			<element name="linearRingId" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType
+		name="GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION">
+		<sequence>
+			<element name="polygonId" type="string" />
+			<element name="deviation" type="gml:AngleType"></element>
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_P_ORIENTATION_RINGS_SAME">
+		<sequence>
+			<element name="polygonId" type="string" />
+			<element name="linearRingId" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_S_ALL_POLYGONS_WRONG_ORIENTATION">
+		<sequence>
+			<element name="geometryId" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_S_POLYGON_WRONG_ORIENTATION">
+		<sequence>
+			<element name="geometryId" type="string" />
+			<element name="edges" type="qual:EdgeList" />
+		</sequence>
+	</complexType>
+
+	<complexType name="EdgeList">
+		<sequence>
+			<element name="edge" type="qual:edgeType"
+				maxOccurs="unbounded" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_S_SELF_INTERSECTION">
+		<sequence>
+			<element name="geometryId" type="string" />
+			<element name="polygonId1" type="string" />
+			<element name="polygonId2" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_S_NON_MANIFOLD_VERTEX">
+		<sequence>
+			<element name="geometryId" type="string" />
+			<element name="vertex" type="gml:DirectPositionType" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_S_NON_MANIFOLD_EDGE">
+		<sequence>
+			<element name="geometryId" type="string" />
+			<element name="edges" type="qual:EdgeList" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_S_NOT_CLOSED">
+		<sequence>
+			<element name="geometryId" type="string" />
+			<element name="edges" type="qual:EdgeList" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_S_TOO_FEW_POLYGONS">
+		<sequence>
+			<element name="geometryId" type="string" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_S_MULTIPLE_CONNECTED_COMPONENTS">
+		<sequence>
+			<element name="geometryId" type="string" />
+			<element name="components" type="qual:ComponentList" />
+		</sequence>
+	</complexType>
+
+	<complexType name="ComponentList">
+		<sequence>
+			<element name="component" type="qual:componentType"
+				maxOccurs="unbounded" />
+		</sequence>
+	</complexType>
+
+	<complexType name="componentType">
+		<sequence>
+			<element name="polygonId" type="string" maxOccurs="unbounded" />
+		</sequence>
+	</complexType>
+
+	<complexType name="GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE">
+		<annotation>
+			<documentation>A planarity error with a point too far from the
+				regression plane
+			</documentation>
+		</annotation>
+		<sequence>
+			<element name="polygonId" type="string" />
+			<element name="vertex" type="gml:DirectPositionType" />
+			<element name="distance" type="gml:LengthType" />
+		</sequence>
+	</complexType>
+
+	<complexType name="SE_ATTRIBUTE_WRONG_VALUE">
+		<sequence>
+			<element name="childId" type="string" minOccurs="0"/>
+			<element name="attributeName" type="string" />
+			<element name="generic" type="boolean" />
+		</sequence>
+	</complexType>
+
+	<complexType name="SE_ATTRIBUTE_MISSING">
+		<sequence>
+			<element name="childId" type="string" minOccurs="0" />
+			<element name="attributeName" type="string" />
+			<element name="generic" type="boolean" />
+		</sequence>
+	</complexType>
+
+	<complexType name="validationResultType">
+		<annotation>
+			<documentation>Data structure containing validation results for
+				features
+			</documentation>
+		</annotation>
+		<sequence>
+			<element name="GE_R_TOO_FEW_POINTS"
+				type="qual:GE_R_TOO_FEW_POINTS" minOccurs="0" maxOccurs="unbounded" />
+			<element name="GE_R_SELF_INTERSECTION"
+				type="qual:GE_R_SELF_INTERSECTION" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_R_NOT_CLOSED" type="qual:GE_R_NOT_CLOSED"
+				minOccurs="0" maxOccurs="unbounded" />
+			<element name="GE_R_CONSECUTIVE_POINTS_SAME"
+				type="qual:GE_R_CONSECUTIVE_POINTS_SAME" minOccurs="0"
+				maxOccurs="unbounded" />
+
+			<element name="GE_P_INTERIOR_DISCONNECTED"
+				type="qual:GE_P_INTERIOR_DISCONNECTED" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_P_INTERSECTING_RINGS"
+				type="qual:GE_P_INTERSECTING_RINGS" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE"
+				type="qual:GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_P_INNER_RINGS_NESTED"
+				type="qual:GE_P_INNER_RINGS_NESTED" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_P_HOLE_OUTSIDE"
+				type="qual:GE_P_HOLE_OUTSIDE" minOccurs="0" maxOccurs="unbounded" />
+			<element name="GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION"
+				type="qual:GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_P_ORIENTATION_RINGS_SAME"
+				type="qual:GE_P_ORIENTATION_RINGS_SAME" minOccurs="0"
+				maxOccurs="unbounded" />
+
+			<element name="GE_S_ALL_POLYGONS_WRONG_ORIENTATION"
+				type="qual:GE_S_ALL_POLYGONS_WRONG_ORIENTATION" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_S_POLYGON_WRONG_ORIENTATION"
+				type="qual:GE_S_POLYGON_WRONG_ORIENTATION" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_S_SELF_INTERSECTION"
+				type="qual:GE_S_SELF_INTERSECTION" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_S_NON_MANIFOLD_VERTEX"
+				type="qual:GE_S_NON_MANIFOLD_VERTEX" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_S_NON_MANIFOLD_EDGE"
+				type="qual:GE_S_NON_MANIFOLD_EDGE" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_S_NOT_CLOSED" type="qual:GE_S_NOT_CLOSED"
+				minOccurs="0" maxOccurs="unbounded" />
+			<element name="GE_S_TOO_FEW_POLYGONS"
+				type="qual:GE_S_TOO_FEW_POLYGONS" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="GE_S_MULTIPLE_CONNECTED_COMPONENTS"
+				type="qual:GE_S_MULTIPLE_CONNECTED_COMPONENTS" minOccurs="0"
+				maxOccurs="unbounded" />
+
+			<element name="SE_ATTRIBUTE_WRONG_VALUE"
+				type="qual:SE_ATTRIBUTE_WRONG_VALUE" minOccurs="0"
+				maxOccurs="unbounded" />
+			<element name="SE_ATTRIBUTE_MISSING"
+				type="qual:SE_ATTRIBUTE_MISSING" minOccurs="0"
+				maxOccurs="unbounded" />
+		</sequence>
+		<attribute name="result" type="qual:result" />
+	</complexType>
+
+	<simpleType name="requirementID" final="restriction">
+		<annotation>
+			<documentation>Enumeration for available requirements</documentation>
+		</annotation>
+		<restriction base="string">
+			<enumeration value="R_GE_R_TOO_FEW_POINTS" />
+			<enumeration value="R_GE_R_NOT_CLOSED" />
+			<enumeration value="R_GE_R_CONSECUTIVE_POINTS_SAME" />
+			<enumeration value="R_GE_R_SELF_INTERSECTION" />
+			<enumeration value="R_GE_P_NON_PLANAR" />
+			<enumeration value="R_GE_P_INTERIOR_DISCONNECTED" />
+			<enumeration value="R_GE_P_INTERSECTING_RINGS" />
+			<enumeration value="R_GE_P_HOLE_OUTSIDE" />
+			<enumeration value="R_GE_P_ORIENTATION_RINGS_SAME" />
+			<enumeration value="R_GE_P_INNER_RINGS_NESTED" />
+			<enumeration value="R_GE_S_TOO_FEW_POLYGONS" />
+			<enumeration value="R_GE_S_NOT_CLOSED" />
+			<enumeration value="R_GE_S_NON_MANIFOLD_EDGE" />
+			<enumeration value="R_GE_S_POLYGON_WRONG_ORIENTATION" />
+			<enumeration
+				value="R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION" />
+			<enumeration value="R_GE_S_NON_MANIFOLD_VERTEX" />
+			<enumeration value="R_GE_S_SELF_INTERSECTION" />
+			<enumeration value="R_GE_S_MULTIPLE_CONNECTED_COMPONENTS" />
+			<enumeration value="R_SE_ATTRIBUTES_EXISTING" />
+			<enumeration value="R_SE_ATTRIBUTES_CORRECT" />
+		</restriction>
+	</simpleType>
+
+	<complexType name="parameter">
+		<simpleContent>
+			<extension base="string">
+				<attribute name="name" type="string" use="required" />
+				<attribute name="uom" type="string" use="optional" />
+			</extension>
+		</simpleContent>
+	</complexType>
+
+	<complexType name="requirementType">
+		<annotation>
+			<documentation>Requirement structure for configuration purposes
+			</documentation>
+		</annotation>
+		<sequence>
+			<element name="parameter" type="qual:parameter" minOccurs="0"
+				maxOccurs="unbounded" />
+		</sequence>
+		<attribute name="name" type="qual:requirementID" />
+		<attribute name="enabled" type="boolean" />
+	</complexType>
+
+	<complexType name="validationPlanType">
+		<annotation>
+			<documentation>Validation plan structure containing information about
+				the parameters used to perform the checks
+			</documentation>
+		</annotation>
+		<sequence>
+			<element name="globalParameters"
+				type="qual:globalParameterType" />
+			<element name="requirement" type="qual:requirementType"
+				maxOccurs="unbounded" />
+			<element name="filter" type="qual:filterType" minOccurs="1"
+				maxOccurs="1" />
+		</sequence>
+	</complexType>
+
+	<complexType name="filterType">
+		<sequence>
+			<element name="checking" type="qual:featureType"
+				minOccurs="0" maxOccurs="unbounded" />
+		</sequence>
+	</complexType>
+
+	<simpleType name="featureType">
+		<restriction base="string">
+			<enumeration value="BUILDING"></enumeration>
+			<enumeration value="TRANSPORTATION"></enumeration>
+			<enumeration value="VEGETATION"></enumeration>
+			<enumeration value="BRIDGE"></enumeration>
+			<enumeration value="WATER"></enumeration>
+			<enumeration value="LAND"></enumeration>
+		</restriction>
+	</simpleType>
+
+	<complexType name="globalParameterType">
+		<sequence>
+			<element name="parameter" type="qual:parameter"
+				maxOccurs="unbounded" />
+		</sequence>
+	</complexType>
+
+	<complexType name="statisticsType">
+		<annotation>
+			<documentation>Statistics structure containing information about end
+				result of checking process
+			</documentation>
+		</annotation>
+		<sequence>
+			<element name="numErrorBuildings"
+				type="qual:featureStatistics" />
+			<element name="numErrorVegetation"
+				type="qual:featureStatistics" />
+			<element name="numErrorLandObjects"
+				type="qual:featureStatistics" />
+			<element name="numErrorBridgeObjects"
+				type="qual:featureStatistics" />
+			<element name="numErrorWaterObjects"
+				type="qual:featureStatistics" />
+			<element name="numErrorTransportation"
+				type="qual:featureStatistics" />
+			<element name="errorStatistics"
+				type="qual:errorStatisticsType" />
+		</sequence>
+	</complexType>
+
+	<complexType name="errorStatisticsType">
+		<sequence>
+			<element name="error" type="qual:errorType" minOccurs="0"
+				maxOccurs="unbounded" />
+		</sequence>
+	</complexType>
+
+	<complexType name="errorType">
+		<simpleContent>
+			<extension base="int">
+				<attribute name="name" type="qual:errorId"></attribute>
+			</extension>
+		</simpleContent>
+	</complexType>
+
+	<simpleType name="errorId">
+		<restriction base="string">
+			<enumeration value="GE_R_TOO_FEW_POINTS" />
+			<enumeration value="GE_R_NOT_CLOSED" />
+			<enumeration value="GE_R_CONSECUTIVE_POINTS_SAME" />
+			<enumeration value="GE_R_SELF_INTERSECTION" />
+			<enumeration value="GE_R_NOT_CLOSED" />
+			<enumeration value="GE_P_NON_PLANAR" />
+			<enumeration value="GE_P_INTERIOR_DISCONNECTED" />
+			<enumeration value="GE_P_INTERSECTING_RINGS" />
+			<enumeration value="GE_P_HOLE_OUTSIDE" />
+			<enumeration value="GE_P_ORIENTATION_RINGS_SAME" />
+			<enumeration value="GE_P_INNER_RINGS_NESTED" />
+			<enumeration value="GE_S_TOO_FEW_POLYGONS" />
+			<enumeration value="GE_S_NOT_CLOSED" />
+			<enumeration value="GE_S_NON_MANIFOLD_EDGE" />
+			<enumeration value="GE_S_POLYGON_WRONG_ORIENTATION" />
+			<enumeration value="GE_S_ALL_POLYGONS_WRONG_ORIENTATION" />
+			<enumeration value="GE_S_NON_MANIFOLD_VERTEX" />
+			<enumeration value="GE_S_SELF_INTERSECTION" />
+			<enumeration value="GE_S_MULTIPLE_CONNECTED_COMPONENTS" />
+			<enumeration value="SE_ATTRIBUTE_WRONG_VALUE" />
+			<enumeration value="SE_ATTRIBUTE_MISSING" />
+		</restriction>
+	</simpleType>
+
+	<complexType name="featureStatistics">
+		<simpleContent>
+			<extension base="int">
+				<attribute name="numChecked" type="int" />
+			</extension>
+		</simpleContent>
+	</complexType>
+
+	<element name="validation" type="qual:validationType"
+		substitutionGroup="core:_GenericApplicationPropertyOfCityModel" />
+
+	<complexType name="validationType">
+		<annotation>
+			<documentation>Data structure containing the validation plan and
+				statistics of a validation process
+			</documentation>
+		</annotation>
+		<!-- <complexContent> <extension base="gml:AbstractFeatureType"> -->
+		<sequence>
+			<element name="validationDate" type="dateTime" />
+			<element name="validationSoftware" type="string" />
+			<element name="validationPlan" type="qual:validationPlanType"
+				maxOccurs="1" />
+			<element name="statistics" type="qual:statisticsType"
+				maxOccurs="1" />
+		</sequence>
+		<!-- </extension> </complexContent> -->
+	</complexType>
+</schema>
\ No newline at end of file