diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ComponentList.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ComponentList.java
index d2807a2c7864d605e8210eb36510e302a8071c35..24b625abcb371f5bc8e139a55f31479ad54188e2 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ComponentList.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ComponentList.java
@@ -23,6 +23,7 @@ import org.citygml4j.core.model.ade.ADEObject;
 import org.xmlobjects.gml.model.GMLObject;
 
 import de.hft.stuttgart.quality.model.properties.PolygonIdListProperty;
+import org.xmlobjects.model.ChildList;
 
 public class ComponentList extends GMLObject implements ADEObject {
 
@@ -33,13 +34,13 @@ public class ComponentList extends GMLObject implements ADEObject {
 
 	public List<PolygonIdListProperty> getComponents() {
 		if (components == null) {
-			components = new ArrayList<>();
+			components = new ChildList<>(this);
 		}
 		return components;
 	}
 
 	public void setComponents(List<PolygonIdListProperty> components) {
-		this.components = components;
+		this.components = asChild(components);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ConsecutivePointsSameError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ConsecutivePointsSameError.java
index 5621f9ac4a5620fa06feff7eacc7b9068e33fe2a..a45e30910722e93d0b77488b151a9cc2e2c217fc 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ConsecutivePointsSameError.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ConsecutivePointsSameError.java
@@ -32,7 +32,7 @@ public class ConsecutivePointsSameError extends AbstractRingError {
 	}
 
 	public void setVertex1(DirectPosition vertex1) {
-		this.vertex1 = vertex1;
+		this.vertex1 = asChild(vertex1);
 	}
 
 	public DirectPosition getVertex2() {
@@ -40,7 +40,7 @@ public class ConsecutivePointsSameError extends AbstractRingError {
 	}
 
 	public void setVertex2(DirectPosition vertex2) {
-		this.vertex2 = vertex2;
+		this.vertex2 = asChild(vertex2);
 	}
 
 	@Override
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Edge.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Edge.java
index 05dd3e6ad4a28b082df8a19ff9a1a71afeeecf46..8e9519f5dafb950d8d72570808c811b23d3e0540 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Edge.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Edge.java
@@ -34,7 +34,7 @@ public class Edge extends GMLObject implements ADEObject {
 	}
 
 	public void setFrom(DirectPosition from) {
-		this.from = from;
+		this.from = asChild(from);
 	}
 
 	public DirectPosition getTo() {
@@ -42,7 +42,7 @@ public class Edge extends GMLObject implements ADEObject {
 	}
 
 	public void setTo(DirectPosition to) {
-		this.to = to;
+		this.to = asChild(to);
 	}
 
 	@Override
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/EdgeList.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/EdgeList.java
index 8257fe3c59bd2784e3ab85111ccc8d17c67b8472..ba5e43167edc4abcc198eac6de5c9fd6515fbc60 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/EdgeList.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/EdgeList.java
@@ -23,6 +23,7 @@ import org.citygml4j.core.model.ade.ADEObject;
 import org.xmlobjects.gml.model.GMLObject;
 
 import de.hft.stuttgart.quality.model.properties.EdgeProperty;
+import org.xmlobjects.model.ChildList;
 
 public class EdgeList extends GMLObject implements ADEObject {
 
@@ -33,13 +34,13 @@ public class EdgeList extends GMLObject implements ADEObject {
 
 	public List<EdgeProperty> getEdges() {
 		if (edges == null) {
-			edges = new ArrayList<>();
+			edges = new ChildList<>(this);
 		}
 		return edges;
 	}
 
 	public void setEdges(List<EdgeProperty> edges) {
-		this.edges = edges;
+		this.edges = asChild(edges);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Error.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Error.java
index 0444f3bdf6949658a42ee9abf8483c951b347664..7c5dde27203b8740c0bb26e0e144ac470241d334 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Error.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Error.java
@@ -27,15 +27,15 @@ public class Error extends GMLObject implements ADEObject {
 	@Serial
 	private static final long serialVersionUID = 2447962257841143458L;
 
-	private int occurences;
+	private int occurrences;
 	private ErrorId name;
 
-	public int getOccurences() {
-		return occurences;
+	public int getOccurrences() {
+		return occurrences;
 	}
 
-	public void setOccurences(int occurences) {
-		this.occurences = occurences;
+	public void setOccurrences(int occurrences) {
+		this.occurrences = occurrences;
 	}
 
 	public ErrorId getName() {
@@ -48,7 +48,7 @@ public class Error extends GMLObject implements ADEObject {
 
 	@Override
 	public String toString() {
-		return "Error [occurences=" + occurences + ", name=" + name + "]";
+		return "Error [occurences=" + occurrences + ", name=" + name + "]";
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Filter.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Filter.java
index 98eee089b38d5b9c0a25edf8f13b6f3cd0aa9cc9..4b65fcf8fee5b3628b1f0611eba4163b1fd4894e 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Filter.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Filter.java
@@ -23,6 +23,7 @@ import org.citygml4j.core.model.ade.ADEObject;
 import org.xmlobjects.gml.model.GMLObject;
 
 import de.hft.stuttgart.quality.model.properties.CheckingProperty;
+import org.xmlobjects.model.ChildList;
 
 public class Filter extends GMLObject implements ADEObject {
 
@@ -33,13 +34,13 @@ public class Filter extends GMLObject implements ADEObject {
 
 	public List<CheckingProperty> getChecking() {
 		if (checking == null) {
-			checking = new ArrayList<>();
+			checking = new ChildList<>(this);
 		}
 		return checking;
 	}
 
 	public void setChecking(List<CheckingProperty> checking) {
-		this.checking = checking;
+		this.checking = asChild(checking);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/GlobalParameters.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/GlobalParameters.java
index 6f92463d5ab8a9d84bb845f722c9680e73f6c8cc..75b5997976410b159ef880271d53c382d51753bd 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/GlobalParameters.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/GlobalParameters.java
@@ -23,6 +23,7 @@ import org.citygml4j.core.model.ade.ADEObject;
 import org.xmlobjects.gml.model.GMLObject;
 
 import de.hft.stuttgart.quality.model.properties.ParameterProperty;
+import org.xmlobjects.model.ChildList;
 
 public class GlobalParameters extends GMLObject implements ADEObject {
 
@@ -33,13 +34,13 @@ public class GlobalParameters extends GMLObject implements ADEObject {
 
 	public List<ParameterProperty> getParameters() {
 		if (parameters == null) {
-			parameters = new ArrayList<>();
+			parameters = new ChildList<>(this);
 		}
 		return parameters;
 	}
 
 	public void setParameters(List<ParameterProperty> parameters) {
-		this.parameters = parameters;
+		this.parameters = asChild(parameters);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/MultipleComponentsError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/MultipleComponentsError.java
index a05fcd11387e45a533154f3eb4577c824f2eb27a..718b73e28f75c70bbd9420ea1db44d53eef0d0d2 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/MultipleComponentsError.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/MultipleComponentsError.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import de.hft.stuttgart.quality.model.properties.ComponentListProperty;
+import org.xmlobjects.model.ChildList;
 
 public class MultipleComponentsError extends AbstractSolidError {
 
@@ -30,13 +31,13 @@ public class MultipleComponentsError extends AbstractSolidError {
 
 	public List<ComponentListProperty> getEdges() {
 		if (edges == null) {
-			edges = new ArrayList<>();
+			edges = new ChildList<>(this);
 		}
 		return edges;
 	}
 
 	public void setEdges(List<ComponentListProperty> edges) {
-		this.edges = edges;
+		this.edges = asChild(edges);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java
index f38e00805c13d46f97892ea4866bbb10a01a2808..b38562cacc6dee99ed5a61e7d704a2899e265c05 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldEdgeError.java
@@ -31,7 +31,7 @@ public class NonManifoldEdgeError extends AbstractSolidError {
 	}
 
 	public void setEdges(EdgeListProperty edges) {
-		this.edges = edges;
+		this.edges = asChild(edges);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java
index 1ca24852d64aec6958325528b184863f396d06f4..36a758c30896d24b95b4a63b21b9ac09db605576 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/NonManifoldVertexError.java
@@ -31,7 +31,7 @@ public class NonManifoldVertexError extends AbstractSolidError {
 	}
 
 	public void setVertex(DirectPosition vertex) {
-		this.vertex = vertex;
+		this.vertex = asChild(vertex);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java
index 3a02bead4d233780c3221b5dd7cbeb21ccb0fd32..ae0b3bb3e87c22e08ffddfeb2bfd909fe860ec60 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarDistancePlaneError.java
@@ -33,7 +33,7 @@ public class PlanarDistancePlaneError extends AbstractPolygonError {
 	}
 
 	public void setVertex(DirectPosition vertex) {
-		this.vertex = vertex;
+		this.vertex = asChild(vertex);
 	}
 
 	public Length getDistance() {
@@ -41,7 +41,7 @@ public class PlanarDistancePlaneError extends AbstractPolygonError {
 	}
 
 	public void setDistance(Length distance) {
-		this.distance = distance;
+		this.distance = asChild(distance);
 	}
 
 	@Override
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java
index 04f3f605d76442767541452fc7863bc9dbdd3983..7f19339577bf0241d0744a06d7292a0ccc3f8459 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/PlanarNormalsDeviationError.java
@@ -31,7 +31,7 @@ public class PlanarNormalsDeviationError extends AbstractPolygonError {
 	}
 
 	public void setDeviation(Angle deviation) {
-		this.deviation = deviation;
+		this.deviation = asChild(deviation);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Requirement.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Requirement.java
index 9fb5f8075a54d49f80041a67d2c5d2c835f3bf13..a59593b43c4f809f23585ef33a78f35a118f9bbc 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Requirement.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Requirement.java
@@ -24,6 +24,7 @@ import org.xmlobjects.gml.model.GMLObject;
 
 import de.hft.stuttgart.quality.model.enums.RequirementId;
 import de.hft.stuttgart.quality.model.properties.ParameterProperty;
+import org.xmlobjects.model.ChildList;
 
 public class Requirement extends GMLObject implements ADEObject {
 
@@ -52,13 +53,13 @@ public class Requirement extends GMLObject implements ADEObject {
 
 	public List<ParameterProperty> getParameters() {
 		if (parameters == null) {
-			parameters = new ArrayList<>();
+			parameters = new ChildList<>(this);
 		}
 		return parameters;
 	}
 
 	public void setParameters(List<ParameterProperty> parameters) {
-		this.parameters = parameters;
+		this.parameters = asChild(parameters);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java
index 1444bc452f743b8b1c97439cc6447b80011c6bfa..240d47ff8b6feabfc18d5052a3753fd6bb75246a 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/RingSelfIntersectionError.java
@@ -46,7 +46,7 @@ public class RingSelfIntersectionError extends AbstractRingError {
 	}
 
 	public void setEdge1(EdgeProperty edge1) {
-		this.edge1 = edge1;
+		this.edge1 = asChild(edge1);
 	}
 
 	public EdgeProperty getEdge2() {
@@ -54,7 +54,7 @@ public class RingSelfIntersectionError extends AbstractRingError {
 	}
 
 	public void setEdge2(EdgeProperty edge2) {
-		this.edge2 = edge2;
+		this.edge2 = asChild(edge2);
 	}
 
 	public DirectPosition getVertex1() {
@@ -62,7 +62,7 @@ public class RingSelfIntersectionError extends AbstractRingError {
 	}
 
 	public void setVertex1(DirectPosition vertex1) {
-		this.vertex1 = vertex1;
+		this.vertex1 = asChild(vertex1);
 	}
 
 	public DirectPosition getVertex2() {
@@ -70,7 +70,7 @@ public class RingSelfIntersectionError extends AbstractRingError {
 	}
 
 	public void setVertex2(DirectPosition vertex2) {
-		this.vertex2 = vertex2;
+		this.vertex2 = asChild(vertex2);
 	}
 
 	@Override
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java
index c53192a44030db063b6690c56fbfc05daf7893e2..2e6e6e997cfdddbd8c4ce2d11b75e358e6f27a96 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SolidNotClosedError.java
@@ -31,7 +31,7 @@ public class SolidNotClosedError extends AbstractSolidError {
 	}
 
 	public void setEdges(EdgeListProperty edges) {
-		this.edges = edges;
+		this.edges = asChild(edges);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Statistics.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Statistics.java
index 798f7527578322ee969ad3ce5b05145b3caca39c..a33051e96eb456acdc0d3cca7b2e48db02e521bc 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Statistics.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Statistics.java
@@ -24,6 +24,7 @@ import org.xmlobjects.gml.model.GMLObject;
 
 import de.hft.stuttgart.quality.model.properties.ErrorProperty;
 import de.hft.stuttgart.quality.model.properties.FeatureStatisticsProperty;
+import org.xmlobjects.model.ChildList;
 
 public class Statistics extends GMLObject implements ADEObject {
 
@@ -43,7 +44,7 @@ public class Statistics extends GMLObject implements ADEObject {
 	}
 
 	public void setNumErrorBuildings(FeatureStatisticsProperty numErrorBuildings) {
-		this.numErrorBuildings = numErrorBuildings;
+		this.numErrorBuildings = asChild(numErrorBuildings);
 	}
 
 	public FeatureStatisticsProperty getNumErrorVegetation() {
@@ -51,7 +52,7 @@ public class Statistics extends GMLObject implements ADEObject {
 	}
 
 	public void setNumErrorVegetation(FeatureStatisticsProperty numErrorVegetation) {
-		this.numErrorVegetation = numErrorVegetation;
+		this.numErrorVegetation = asChild(numErrorVegetation);
 	}
 
 	public FeatureStatisticsProperty getNumErrorLandObjects() {
@@ -59,7 +60,7 @@ public class Statistics extends GMLObject implements ADEObject {
 	}
 
 	public void setNumErrorLandObjects(FeatureStatisticsProperty numErrorLandObjects) {
-		this.numErrorLandObjects = numErrorLandObjects;
+		this.numErrorLandObjects = asChild(numErrorLandObjects);
 	}
 
 	public FeatureStatisticsProperty getNumErrorBridgeObjects() {
@@ -67,7 +68,7 @@ public class Statistics extends GMLObject implements ADEObject {
 	}
 
 	public void setNumErrorBridgeObjects(FeatureStatisticsProperty numErrorBridgeObjects) {
-		this.numErrorBridgeObjects = numErrorBridgeObjects;
+		this.numErrorBridgeObjects = asChild(numErrorBridgeObjects);
 	}
 
 	public FeatureStatisticsProperty getNumErrorWaterObjects() {
@@ -75,7 +76,7 @@ public class Statistics extends GMLObject implements ADEObject {
 	}
 
 	public void setNumErrorWaterObjects(FeatureStatisticsProperty numErrorWaterObjects) {
-		this.numErrorWaterObjects = numErrorWaterObjects;
+		this.numErrorWaterObjects = asChild(numErrorWaterObjects);
 	}
 
 	public FeatureStatisticsProperty getNumErrorTransportation() {
@@ -83,18 +84,18 @@ public class Statistics extends GMLObject implements ADEObject {
 	}
 
 	public void setNumErrorTransportation(FeatureStatisticsProperty numErrorTransportation) {
-		this.numErrorTransportation = numErrorTransportation;
+		this.numErrorTransportation = asChild(numErrorTransportation);
 	}
 
 	public List<ErrorProperty> getErrors() {
 		if (errors == null) {
-			errors = new ArrayList<>();
+			errors = new ChildList<>(this);
 		}
 		return errors;
 	}
 
 	public void setErrors(List<ErrorProperty> errors) {
-		this.errors = errors;
+		this.errors = asChild(errors);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Validation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Validation.java
index 4596926a8640a33c3c2b36a95bd7d1361ed7ebc7..a880fce18fb51611544091f7090e418b5ac231ac 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Validation.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Validation.java
@@ -55,7 +55,7 @@ public class Validation extends AbstractFeature implements ADEObject {
 	}
 
 	public void setStatistics(StatisticsProperty statistics) {
-		this.statistics = statistics;
+		this.statistics = asChild(statistics);
 	}
 
 	public ValidationPlanProperty getValidationPlan() {
@@ -63,7 +63,7 @@ public class Validation extends AbstractFeature implements ADEObject {
 	}
 
 	public void setValidationPlan(ValidationPlanProperty validationPlan) {
-		this.validationPlan = validationPlan;
+		this.validationPlan = asChild(validationPlan);
 	}
 
 }
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java
index 62b8ab9033403e23ce3f3e44c140486de52e4adb..ee8461b57dc16266e4c2373768c19b569e2d4e90 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java
@@ -25,6 +25,7 @@ import org.xmlobjects.gml.model.GMLObject;
 import de.hft.stuttgart.quality.model.properties.FilterProperty;
 import de.hft.stuttgart.quality.model.properties.GlobalParametersProperty;
 import de.hft.stuttgart.quality.model.properties.RequirementProperty;
+import org.xmlobjects.model.ChildList;
 
 public class ValidationPlan extends GMLObject implements ADEObject {
 
@@ -40,7 +41,7 @@ public class ValidationPlan extends GMLObject implements ADEObject {
 	}
 
 	public void setGlobalParameters(GlobalParametersProperty globalParameters) {
-		this.globalParameters = globalParameters;
+		this.globalParameters = asChild(globalParameters);
 	}
 
 	public FilterProperty getFilter() {
@@ -48,18 +49,18 @@ public class ValidationPlan extends GMLObject implements ADEObject {
 	}
 
 	public void setFilter(FilterProperty filter) {
-		this.filter = filter;
+		this.filter = asChild(filter);
 	}
 
 	public List<RequirementProperty> getRequirement() {
 		if (requirement == null) {
-			requirement = new ArrayList<>();
+			requirement = new ChildList<>(this);
 		}
 		return requirement;
 	}
 
 	public void setRequirement(List<RequirementProperty> requirement) {
-		this.requirement = requirement;
+		this.requirement = asChild(requirement);
 	}
 
 
diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java
index c91fa39405dcf8b5dcb2341c41f020d17c46298f..4020323bb46949ea287eab79c3c9f2a3cc34ffb3 100644
--- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java
+++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java
@@ -25,6 +25,7 @@ import org.xmlobjects.gml.model.base.Reference;
 
 import de.hft.stuttgart.quality.model.enums.ResultType;
 import de.hft.stuttgart.quality.model.properties.AbstractErrorProperty;
+import org.xmlobjects.model.ChildList;
 
 public class ValidationResult extends GMLObject implements ADEObject {
 
@@ -40,12 +41,12 @@ public class ValidationResult extends GMLObject implements ADEObject {
 	}
 
 	public void setValidationPlanID(Reference validationPlanID) {
-		this.validationPlanID = validationPlanID;
+		this.validationPlanID = asChild(validationPlanID);
 	}
 
 	public List<AbstractErrorProperty> getErrors() {
 		if (errors == null) {
-			errors = new ArrayList<>();
+			errors = new ChildList<>(this);
 		}
 		return errors;
 	}