diff --git a/citygml4j-quality-ade/pom.xml b/citygml4j-quality-ade/pom.xml index 1474e69f04eb7cb763d15f9ea76c0ff767f7efe5..4c65c090ee5cdc7c243476c2c97a1108c03674f7 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.2</version> + <version>0.1.3</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 aef857c77a4e8234b75b1255058b14208a206536..f1e7d58cdf742678cc3a8ed408f4cbc331ef53a0 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_2); + private final List<ADEModule> modules = Collections.singletonList(QualityADEModule.V0_1_3); @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 3b1f54f6268e5e7c0d8fc5d728369e59143c069a..9270a2539ecc1c8915c3513663a16c15822639a3 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 @@ -17,8 +17,6 @@ package de.hft.stuttgart.quality; import java.net.URL; import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; @@ -28,25 +26,16 @@ import org.citygml4j.model.gml.feature.AbstractFeature; import org.citygml4j.model.module.ade.ADEModule; import org.citygml4j.model.module.citygml.CityGMLVersion; -import de.hft.stuttgart.quality.model.Validation; - public class QualityADEModule extends ADEModule { - public static final String NAMESPACE_URI = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2"; + public static final String NAMESPACE_URI = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3"; - public static final QualityADEModule V0_1_2 = new QualityADEModule(); + public static final QualityADEModule V0_1_3 = new QualityADEModule(); - private HashMap<String, Class<? extends AbstractFeature>> features; - private HashSet<String> featureProperties; - private static final long serialVersionUID = -8208579547274734280L; public QualityADEModule() { super(NAMESPACE_URI, "qual", CityGMLVersion.v2_0_0); - features = new HashMap<>(); - features.put("validation", Validation.class); - - featureProperties = new HashSet<>(); } @Override @@ -61,32 +50,27 @@ public class QualityADEModule extends ADEModule { @Override public boolean hasFeatureProperty(String name) { - return featureProperties.contains(name); + return false; } @Override public boolean hasFeature(String name) { - return features.containsKey(name); + return false; } @Override public Class<? extends AbstractFeature> getFeatureClass(String name) { - return features.get(name); + throw new IllegalStateException("No feature classes available"); } @Override public QName getFeatureName(Class<? extends AbstractFeature> featureClass) { - for (Map.Entry<String, Class<? extends AbstractFeature>> entry : features.entrySet()) { - if (entry.getValue() == featureClass) - return new QName(getNamespaceURI(), entry.getKey()); - } - return null; } @Override public Map<String, Class<? extends AbstractFeature>> getFeatures() { - return Collections.unmodifiableMap(features); + return Collections.emptyMap(); } @Override diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AllPolygonsWrongOrientation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AllPolygonsWrongOrientation.java index ebc2cc15afcd5318a6f3b3a0cfdb7bbac403e9b3..0b384b735f8fe70961198da21773642cac5ba538 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AllPolygonsWrongOrientation.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AllPolygonsWrongOrientation.java @@ -16,30 +16,14 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class AllPolygonsWrongOrientation extends AbstractFeature implements ValidationError, ADEModelObject { +public class AllPolygonsWrongOrientation extends SolidError { private static final long serialVersionUID = 3817224755569965908L; - private String geometryId; - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - @Override public String toString() { - return "AllPolygonsWrongOrientation [geometryId=" + geometryId + "]"; + return "AllPolygonsWrongOrientation [geometryId=" + getGeometryId() + "]"; } @Override @@ -47,24 +31,4 @@ public class AllPolygonsWrongOrientation extends AbstractFeature implements Vali return copyTo(new AllPolygonsWrongOrientation(), copyBuilder); } - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeMissing.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeMissing.java index 6d339fa0f27743419c7db343e41b293e9ba326bd..d3eee9bed63cb30bd106b769eb66035caabd90bb 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeMissing.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeMissing.java @@ -16,14 +16,8 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class AttributeMissing extends AbstractFeature implements ValidationError, ADEModelObject { +public class AttributeMissing extends SemanticError { private static final long serialVersionUID = -5416574100733885169L; @@ -59,24 +53,4 @@ public class AttributeMissing extends AbstractFeature implements ValidationError public Object copy(CopyBuilder copyBuilder) { return copyTo(new AttributeWrongValue(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeWrongValue.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeWrongValue.java index 88167346fde8fc53f24888cad18d99a1fa3ddfdc..b8815593d489b0275de723801031126f4d85b7cb 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeWrongValue.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/AttributeWrongValue.java @@ -16,14 +16,8 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class AttributeWrongValue extends AbstractFeature implements ValidationError, ADEModelObject { +public class AttributeWrongValue extends SemanticError { private static final long serialVersionUID = -5650985861847806620L; @@ -65,24 +59,4 @@ public class AttributeWrongValue extends AbstractFeature implements ValidationEr public Object copy(CopyBuilder copyBuilder) { return copyTo(new AttributeWrongValue(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ChildObject.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ChildObject.java new file mode 100644 index 0000000000000000000000000000000000000000..39aec6d0c286a30c3526f2c39535f820a7cb9d17 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ChildObject.java @@ -0,0 +1,53 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model; + +import org.citygml4j.builder.copy.CopyBuilder; +import org.citygml4j.model.citygml.ade.binding.ADEModelObject; +import org.citygml4j.model.common.base.ModelObject; + +public abstract class ChildObject implements ADEModelObject { + + private static final long serialVersionUID = 6726372382501963276L; + + private ModelObject parent; + + @Override + public Object copyTo(Object target, CopyBuilder copyBuilder) { + return target; + } + + @Override + public ModelObject getParent() { + return parent; + } + + @Override + public void setParent(ModelObject parent) { + this.parent = parent; + } + + @Override + public boolean isSetParent() { + return parent != null; + } + + @Override + public void unsetParent() { + parent = null; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ConsecutivePointsSame.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ConsecutivePointsSame.java index d4ce99e31d47cb552f0dc4fd29f7b74683d96918..91cb869ba018047a5f6232a27c9f86b7ba6d321d 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ConsecutivePointsSame.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ConsecutivePointsSame.java @@ -16,26 +16,15 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; import org.citygml4j.model.gml.geometry.primitives.DirectPosition; -public class ConsecutivePointsSame extends AbstractFeature implements ValidationError, ADEModelObject { +public class ConsecutivePointsSame extends RingError { private static final long serialVersionUID = -838421312521561747L; - private String linearRingId; private DirectPosition vertex1; private DirectPosition vertex2; - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - public void setVertex1(DirectPosition vertex1) { this.vertex1 = vertex1; } @@ -43,11 +32,7 @@ public class ConsecutivePointsSame extends AbstractFeature implements Validation public void setVertex2(DirectPosition vertex2) { this.vertex2 = vertex2; } - - public String getLinearRingId() { - return linearRingId; - } - + public DirectPosition getVertex1() { return vertex1; } @@ -58,7 +43,7 @@ public class ConsecutivePointsSame extends AbstractFeature implements Validation @Override public String toString() { - return "ConsecutivePointsSame [linearRingId=" + linearRingId + ", vertex1=" + vertex1 + ", vertex2=" + vertex2 + return "ConsecutivePointsSame [linearRingId=" + getLinearRingId() + ", vertex1=" + vertex1 + ", vertex2=" + vertex2 + "]"; } @@ -67,24 +52,4 @@ public class ConsecutivePointsSame extends AbstractFeature implements Validation return copyTo(new ConsecutivePointsSame(), copyBuilder); } - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/HoleOutside.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/HoleOutside.java index 2547b7bbfa5ed7f0d94903ad8ddfa6d80c65cb79..4804bb024b25ed1c9859e4fea7ca9e87249ee556 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/HoleOutside.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/HoleOutside.java @@ -16,63 +16,28 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class HoleOutside extends AbstractFeature implements ValidationError, ADEModelObject { +public class HoleOutside extends PolygonError { private static final long serialVersionUID = -3029497342950689843L; - private String polygonId; private String linearRingId; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setLinearRingId(String linearRingId) { this.linearRingId = linearRingId; } - public String getPolygonId() { - return polygonId; - } - public String getLinearRingId() { return linearRingId; } @Override public String toString() { - return "HoleOutside [polygonId=" + polygonId + ", linearRingId=" + linearRingId + "]"; + return "HoleOutside [polygonId=" + getPolygonId() + ", linearRingId=" + linearRingId + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new HoleOutside(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InnerRingsNested.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InnerRingsNested.java index dc9013ef10dc29dfe13b0247838afb8926af909b..b1f886d7fcf62c4f71f5755a7fe577d64dc33c52 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InnerRingsNested.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InnerRingsNested.java @@ -16,25 +16,14 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class InnerRingsNested extends AbstractFeature implements ValidationError, ADEModelObject { +public class InnerRingsNested extends PolygonError { private static final long serialVersionUID = 2291087505629924993L; - - private String polygonId; + private String linearRingId1; private String linearRingId2; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setLinearRingId1(String linearRingId1) { this.linearRingId1 = linearRingId1; } @@ -43,10 +32,6 @@ public class InnerRingsNested extends AbstractFeature implements ValidationError this.linearRingId2 = linearRingId2; } - public String getPolygonId() { - return polygonId; - } - public String getLinearRingId1() { return linearRingId1; } @@ -59,24 +44,4 @@ public class InnerRingsNested extends AbstractFeature implements ValidationError public Object copy(CopyBuilder copyBuilder) { return copyTo(new InnerRingsNested(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InteriorDisconnected.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InteriorDisconnected.java index dbaab2ec42f71ba401250b442027eba4bcc52065..64da8cc78e1e5768201a0023646424b86b7c4ba2 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InteriorDisconnected.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/InteriorDisconnected.java @@ -16,54 +16,18 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class InteriorDisconnected extends AbstractFeature implements ValidationError, ADEModelObject { +public class InteriorDisconnected extends PolygonError { private static final long serialVersionUID = 8443642232356795359L; - private String polygonId; - - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - - public String getPolygonId() { - return polygonId; - } - @Override public String toString() { - return "InteriorDisconnected [polygonId=" + polygonId + "]"; + return "InteriorDisconnected [polygonId=" + getPolygonId() + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new InteriorDisconnected(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/IntersectingRings.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/IntersectingRings.java index 518d65f6b211084de1ff662c33909a0336aeda7e..cab11d6863e2f21adb27a9367d1b44f7a3ed1a27 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/IntersectingRings.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/IntersectingRings.java @@ -16,25 +16,14 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class IntersectingRings extends AbstractFeature implements ValidationError, ADEModelObject { +public class IntersectingRings extends PolygonError { private static final long serialVersionUID = 7668529369582991408L; - private String polygonId; private String linearRingId1; private String linearRingId2; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setLinearRingId1(String linearRingId1) { this.linearRingId1 = linearRingId1; } @@ -43,10 +32,6 @@ public class IntersectingRings extends AbstractFeature implements ValidationErro this.linearRingId2 = linearRingId2; } - public String getPolygonId() { - return polygonId; - } - public String getLinearRingId1() { return linearRingId1; } @@ -57,7 +42,7 @@ public class IntersectingRings extends AbstractFeature implements ValidationErro @Override public String toString() { - return "IntersectingRings [polygonId=" + polygonId + ", linearRingId1=" + linearRingId1 + ", linearRingId2=" + return "IntersectingRings [polygonId=" + getPolygonId() + ", linearRingId1=" + linearRingId1 + ", linearRingId2=" + linearRingId2 + "]"; } @@ -65,24 +50,4 @@ public class IntersectingRings extends AbstractFeature implements ValidationErro public Object copy(CopyBuilder copyBuilder) { return copyTo(new IntersectingRings(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/MultipleConnectedComponents.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/MultipleConnectedComponents.java index 087995c1b06f4cd363c968a75f44e142917518a6..c69d6a165db71bb2c1aff9c41fb27b8375799b3d 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/MultipleConnectedComponents.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/MultipleConnectedComponents.java @@ -19,31 +19,15 @@ import java.util.ArrayList; import java.util.List; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; import de.hft.stuttgart.quality.model.jaxb.Component; -public class MultipleConnectedComponents extends AbstractFeature implements ValidationError, ADEModelObject { +public class MultipleConnectedComponents extends SolidError { private static final long serialVersionUID = -4199420154182053060L; - private String geometryId; - private List<Component> components; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - public boolean isSetComponents() { return components != null && !components.isEmpty(); } @@ -60,23 +44,4 @@ public class MultipleConnectedComponents extends AbstractFeature implements Vali return copyTo(new MultipleConnectedComponents(), copyBuilder); } - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldEdge.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldEdge.java index 39f9ade1a948f79d23c27f28fd5144d05fa4057c..3d07d3111256a064a9de756ffd1870ef891da5c9 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldEdge.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldEdge.java @@ -19,28 +19,13 @@ import java.util.ArrayList; import java.util.List; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class NonManifoldEdge extends AbstractFeature implements ValidationError, ADEModelObject { +public class NonManifoldEdge extends SolidError { private static final long serialVersionUID = -4312748985706248178L; - private String geometryId; private List<Edge> edges; - public String getGeometryId() { - return geometryId; - } - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - public boolean isSetEdges() { return edges != null && !edges.isEmpty(); } @@ -56,24 +41,4 @@ public class NonManifoldEdge extends AbstractFeature implements ValidationError, public Object copy(CopyBuilder copyBuilder) { return copyTo(new NonPlanarNormalsDeviation(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldVertex.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldVertex.java index 3b646c4793ab60b7da9dbd84847bd721daae9b01..b1d9b539a62db8f2c4cb86280b97692dff848ad9 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldVertex.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonManifoldVertex.java @@ -16,65 +16,29 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; import org.citygml4j.model.gml.geometry.primitives.DirectPosition; -public class NonManifoldVertex extends AbstractFeature implements ValidationError, ADEModelObject { +public class NonManifoldVertex extends SolidError { private static final long serialVersionUID = -3434116956866828127L; - private String geometryId; private DirectPosition vertex; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - public void setVertex(DirectPosition vertex) { this.vertex = vertex; } - public String getGeometryId() { - return geometryId; - } - public DirectPosition getVertex() { return vertex; } @Override public String toString() { - return "NonManifoldVertex [geometryId=" + geometryId + ", vertex=" + vertex + "]"; + return "NonManifoldVertex [geometryId=" + getGeometryId() + ", vertex=" + vertex + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new NonManifoldVertex(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarDistancePlane.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarDistancePlane.java index 6612f5e8acb24422de9ab32bdf3cfd44df39e63d..fd0292fbc5e762e71c9367bdcead7515c629364e 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarDistancePlane.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarDistancePlane.java @@ -16,26 +16,16 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; import org.citygml4j.model.gml.geometry.primitives.DirectPosition; import org.citygml4j.model.gml.measures.Length; -public class NonPlanarDistancePlane extends AbstractFeature implements ValidationError, ADEModelObject { +public class NonPlanarDistancePlane extends PolygonError { private static final long serialVersionUID = -3428574131554438219L; - private String polygonId; private DirectPosition vertex; private Length distance; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } public void setVertex(DirectPosition vertex) { this.vertex = vertex; @@ -45,10 +35,6 @@ public class NonPlanarDistancePlane extends AbstractFeature implements Validatio this.distance = distance; } - public String getPolygonId() { - return polygonId; - } - public DirectPosition getVertex() { return vertex; } @@ -59,31 +45,11 @@ public class NonPlanarDistancePlane extends AbstractFeature implements Validatio @Override public String toString() { - return "NonPlanarDistancePlane [polygonId=" + polygonId + ", vertex=" + vertex + ", distance=" + distance + "]"; + return "NonPlanarDistancePlane [polygonId=" + getPolygonId() + ", vertex=" + vertex + ", distance=" + distance + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new NonPlanarDistancePlane(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarNormalsDeviation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarNormalsDeviation.java index 4fbf8d13065e2f089a02d5e92f49f9ecb92b2a3f..faa5a4f11ab035a8b0706cbb9783b2b9cec619f8 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarNormalsDeviation.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/NonPlanarNormalsDeviation.java @@ -16,64 +16,29 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; import org.citygml4j.model.gml.measures.Angle; -public class NonPlanarNormalsDeviation extends AbstractFeature implements ValidationError, ADEModelObject { +public class NonPlanarNormalsDeviation extends PolygonError { private static final long serialVersionUID = -8574024132334399550L; - private String polygonId; private Angle deviation; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setDeviation(Angle deviation) { this.deviation = deviation; } - public String getPolygonId() { - return polygonId; - } - public Angle getDeviation() { return deviation; } @Override public String toString() { - return "NonPlanarNormalsDeviation [polygonId=" + polygonId + ", deviation=" + deviation + "]"; + return "NonPlanarNormalsDeviation [polygonId=" + getPolygonId() + ", deviation=" + deviation + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new NonPlanarNormalsDeviation(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/OrientationRingsSame.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/OrientationRingsSame.java index 653153f4dba1d0d2c7d3acefa924d65508cff082..16ab55ead3b8e69e39f6f620439c592150f2071f 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/OrientationRingsSame.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/OrientationRingsSame.java @@ -16,63 +16,28 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class OrientationRingsSame extends AbstractFeature implements ValidationError, ADEModelObject { +public class OrientationRingsSame extends PolygonError { private static final long serialVersionUID = -6983324580253488854L; - private String polygonId; private String linearRingId; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setLinearRingId(String linearRingId) { this.linearRingId = linearRingId; } - public String getPolygonId() { - return polygonId; - } - public String getLinearRingId() { return linearRingId; } @Override public String toString() { - return "OrientationRingsSame [polygonId=" + polygonId + ", linearRingId=" + linearRingId + "]"; + return "OrientationRingsSame [polygonId=" + getPolygonId() + ", linearRingId=" + linearRingId + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new OrientationRingsSame(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonError.java new file mode 100644 index 0000000000000000000000000000000000000000..12e9c5eae238e1a222884df32594ab1372f4de11 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonError.java @@ -0,0 +1,31 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model; + +public abstract class PolygonError extends ValidationError { + + private static final long serialVersionUID = 4694297467768369526L; + + private String polygonId; + + public void setPolygonId(String polygonId) { + this.polygonId = polygonId; + } + + public String getPolygonId() { + return polygonId; + } +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonWrongOrientation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonWrongOrientation.java index e5ff02048ce209ad11239b8a347a2a590614ef45..965491b5be2379387095650269b0ff213dac1bab 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonWrongOrientation.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonWrongOrientation.java @@ -19,27 +19,12 @@ import java.util.ArrayList; import java.util.List; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class PolygonWrongOrientation extends AbstractFeature implements ValidationError, ADEModelObject { +public class PolygonWrongOrientation extends SolidError { private static final long serialVersionUID = 1128689472694838648L; - private String geometryId; private List<Edge> edges; - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } public boolean isSetEdges() { return edges != null && !edges.isEmpty(); @@ -54,31 +39,11 @@ public class PolygonWrongOrientation extends AbstractFeature implements Validati @Override public String toString() { - return "PolygonWrongOrientation [geometryId=" + geometryId + ", edges=" + edges + "]"; + return "PolygonWrongOrientation [geometryId=" + getGeometryId() + ", edges=" + edges + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new PolygonWrongOrientation(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingError.java new file mode 100644 index 0000000000000000000000000000000000000000..d17e5077910c25029d05929979e9f098609e59ab --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingError.java @@ -0,0 +1,31 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model; + +public abstract class RingError extends ValidationError { + + private static final long serialVersionUID = -8610600028811350500L; + + private String linearRingId; + + public void setLinearRingId(String linearRingId) { + this.linearRingId = linearRingId; + } + + public String getLinearRingId() { + return linearRingId; + } +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingNotClosed.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingNotClosed.java index 78603b2f9a61a8f21847e9cc83fc2c69e8e7f74c..4c52b24e2fadf1912c2290232eaea6032df58110 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingNotClosed.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingNotClosed.java @@ -16,56 +16,18 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class RingNotClosed extends AbstractFeature implements ValidationError, ADEModelObject { +public class RingNotClosed extends RingError { private static final long serialVersionUID = 5502668444088395535L; - private String linearRingId; - - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - - public String getLinearRingId() { - return linearRingId; - } - - @Override public String toString() { - return "RingNotClosed [linearRingId=" + linearRingId + "]"; + return "RingNotClosed [linearRingId=" + getLinearRingId() + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new RingNotClosed(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingSelfIntersection.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingSelfIntersection.java index cbb6fcea5aacb18da94df8df0bdcd7e5d8904394..fd11024ea0a336e5573fb1afacf04a75d968dcbe 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingSelfIntersection.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingSelfIntersection.java @@ -16,31 +16,20 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; import org.citygml4j.model.gml.geometry.primitives.DirectPosition; import de.hft.stuttgart.quality.model.jaxb.RingSelfIntType; -public class RingSelfIntersection extends AbstractFeature implements ValidationError, ADEModelObject { +public class RingSelfIntersection extends RingError { private static final long serialVersionUID = -4426615638983209222L; - private String linearRingId; private RingSelfIntType type; private Edge edge1; private Edge edge2; private DirectPosition vertex1; private DirectPosition vertex2; - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - public void setType(RingSelfIntType type) { this.type = type; } @@ -61,10 +50,6 @@ public class RingSelfIntersection extends AbstractFeature implements ValidationE this.vertex2 = vertex2; } - public String getLinearRingId() { - return linearRingId; - } - public RingSelfIntType getType() { return type; } @@ -87,7 +72,7 @@ public class RingSelfIntersection extends AbstractFeature implements ValidationE @Override public String toString() { - return "RingSelfIntersection [linearRingId=" + linearRingId + ", type=" + type + ", edge1=" + edge1 + ", edge2=" + return "RingSelfIntersection [linearRingId=" + getLinearRingId() + ", type=" + type + ", edge1=" + edge1 + ", edge2=" + edge2 + ", vertex1=" + vertex1 + ", vertex2=" + vertex2 + "]"; } @@ -95,25 +80,4 @@ public class RingSelfIntersection extends AbstractFeature implements ValidationE public Object copy(CopyBuilder copyBuilder) { return copyTo(new RingSelfIntersection(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SemanticError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SemanticError.java new file mode 100644 index 0000000000000000000000000000000000000000..b2741c3cc8dd868a0b5725dc4074f05d241cd69a --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SemanticError.java @@ -0,0 +1,22 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model; + +public abstract class SemanticError extends ValidationError { + + private static final long serialVersionUID = 8986289777859562928L; + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidError.java new file mode 100644 index 0000000000000000000000000000000000000000..d20493c4cfb7d97553a8b140577626d29837bb4b --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidError.java @@ -0,0 +1,30 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model; + +public abstract class SolidError extends ValidationError { + private static final long serialVersionUID = 6430138970493794998L; + + private String geometryId; + + public void setGeometryId(String geometryId) { + this.geometryId = geometryId; + } + + public String getGeometryId() { + return geometryId; + } +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidNotClosed.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidNotClosed.java index b8e26c60e49de354b7ecab6b1189056c18e4edeb..71a9b13521997340c7e9b488cd54f5e7b7eda6b8 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidNotClosed.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidNotClosed.java @@ -19,61 +19,26 @@ import java.util.ArrayList; import java.util.List; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class SolidNotClosed extends AbstractFeature implements ValidationError, ADEModelObject { +public class SolidNotClosed extends SolidError { private static final long serialVersionUID = 4609395125395073697L; - - private String geometryId; + private List<Edge> edges; - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - public String getGeometryId() { - return geometryId; - } - + public boolean isSetEdges() { return edges != null && !edges.isEmpty(); } - + public List<Edge> getEdges() { if (edges == null) { edges = new ArrayList<>(); } return edges; } - + @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new SolidNotClosed(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidSelfIntersection.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidSelfIntersection.java index 664eeadf2f45650fafc0e8700d8a829d2442fe3c..423512c6a5910d0c63c5d9c073800f6d6a0adb47 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidSelfIntersection.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidSelfIntersection.java @@ -16,29 +16,14 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class SolidSelfIntersection extends AbstractFeature implements ValidationError, ADEModelObject { +public class SolidSelfIntersection extends SolidError { private static final long serialVersionUID = 4086097021438848040L; - private String geometryId; private String polygonId1; private String polygonId2; - public String getGeometryId() { - return geometryId; - } - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - public String getPolygonId1() { return polygonId1; } @@ -57,7 +42,7 @@ public class SolidSelfIntersection extends AbstractFeature implements Validation @Override public String toString() { - return "SolidSelfIntersection [geometryId=" + geometryId + ", polygonId1=" + polygonId1 + ", polygonId2=" + return "SolidSelfIntersection [geometryId=" + getGeometryId() + ", polygonId1=" + polygonId1 + ", polygonId2=" + polygonId2 + "]"; } @@ -65,24 +50,4 @@ public class SolidSelfIntersection extends AbstractFeature implements Validation public Object copy(CopyBuilder copyBuilder) { return copyTo(new SolidSelfIntersection(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPoints.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPoints.java index 829a627d7a6188f9954d8de89eb08e30457fbf57..7e1272228341b9adb212f2b3af5066f349ffd51b 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPoints.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPoints.java @@ -16,55 +16,18 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class TooFewPoints extends AbstractFeature implements ValidationError, ADEModelObject { +public class TooFewPoints extends RingError { private static final long serialVersionUID = -904319347280328865L; - private String linearRingId; - - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - - public String getLinearRingId() { - return linearRingId; - } - @Override public String toString() { - return "TooFewPoints [linearRingId=" + linearRingId + "]"; + return "TooFewPoints [linearRingId=" + getLinearRingId() + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new TooFewPoints(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPolygons.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPolygons.java index 21fd99024d433fd8f3e71bb9c14bfe979c3df78f..19abc235bc8a9dacf4513b6cd6d8f498d3211688 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPolygons.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/TooFewPolygons.java @@ -16,55 +16,18 @@ package de.hft.stuttgart.quality.model; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; -public class TooFewPolygons extends AbstractFeature implements ValidationError, ADEModelObject { +public class TooFewPolygons extends SolidError { private static final long serialVersionUID = -51591095439740599L; - private String geometryId; - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - @Override public String toString() { - return "TooFewPolygons [geometryId=" + geometryId + "]"; + return "TooFewPolygons [geometryId=" + getGeometryId() + "]"; } @Override public Object copy(CopyBuilder copyBuilder) { return copyTo(new TooFewPolygons(), copyBuilder); } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Validation.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Validation.java index bba251e18237a0e7a9a6e7d20250e7de0cd48890..2ee30ba0b6f0e4e9cb90aabf9fb996d27fffd63b 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Validation.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/Validation.java @@ -18,17 +18,11 @@ package de.hft.stuttgart.quality.model; import java.time.ZonedDateTime; import org.citygml4j.builder.copy.CopyBuilder; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; -import org.citygml4j.model.common.visitor.FeatureFunctor; -import org.citygml4j.model.common.visitor.FeatureVisitor; -import org.citygml4j.model.common.visitor.GMLFunctor; -import org.citygml4j.model.common.visitor.GMLVisitor; -import org.citygml4j.model.gml.feature.AbstractFeature; import de.hft.stuttgart.quality.model.jaxb.Statistics; import de.hft.stuttgart.quality.model.jaxb.ValidationPlan; -public class Validation extends AbstractFeature implements ADEModelObject { +public class Validation extends ChildObject { private static final long serialVersionUID = 1738293574859506005L; @@ -82,7 +76,6 @@ public class Validation extends AbstractFeature implements ADEModelObject { return validationDate; } - public void setValidationSoftware(String validationSoftware) { this.validationSoftware = validationSoftware; } @@ -90,24 +83,4 @@ public class Validation extends AbstractFeature implements ADEModelObject { public String getValidationSoftware() { return validationSoftware; } - - @Override - public void accept(FeatureVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(FeatureFunctor<T> visitor) { - return visitor.apply(this); - } - - @Override - public void accept(GMLVisitor visitor) { - visitor.visit(this); - } - - @Override - public <T> T accept(GMLFunctor<T> visitor) { - return visitor.apply(this); - } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationError.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationError.java index 8be6f353bdb453d40ad39c5495c0666756030222..a1b5a8e2faba36caba5ebc77e4c545f208573f2a 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationError.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ValidationError.java @@ -15,8 +15,7 @@ */ package de.hft.stuttgart.quality.model; -import org.citygml4j.model.citygml.ade.binding.ADEModelObject; - -public interface ValidationError extends ADEModelObject { - +public abstract class ValidationError extends ChildObject { + + private static final long serialVersionUID = -2995694676938108325L; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AllPolygonsWrongOrientationType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AllPolygonsWrongOrientationType.java index afbdb5750babfeb467f6026e004f2eae0696474f..f582f221a54f4c970bf5b76adea520c74ffb8c7e 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AllPolygonsWrongOrientationType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/AllPolygonsWrongOrientationType.java @@ -18,16 +18,6 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_S_ALL_POLYGONS_WRONG_ORIENTATION") -public class AllPolygonsWrongOrientationType extends ValidationErrorType { - - private String geometryId; - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } +public class AllPolygonsWrongOrientationType extends SolidErrorType { } 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 c2cbb61b0551b5bb2cae772af76428328b262f4a..ce13091d5f2c4ce991088f9e8c8c54039886fef9 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 @@ -18,7 +18,7 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "SE_ATTRIBUTE_MISSING") -public class AttributeMissingType extends ValidationErrorType { +public class AttributeMissingType extends SemanticErrorType { private String childId; private String attributeName; 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 6ea84b507655961fcd19c8d2eea67608b7e669ec..a3596b92ee5886aa065df1f5d9bee703e30b0f23 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 @@ -18,7 +18,7 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "SE_ATTRIBUTE_WRONG_VALUE") -public class AttributeWrongValueType extends ValidationErrorType { +public class AttributeWrongValueType extends SemanticErrorType { private String childId; private String attributeName; diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ConsecutivePointsSameType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ConsecutivePointsSameType.java index 1de6be6b955b4c530a93c5ecf485d8af579d60b6..4a584f0c1612709bd7bb030f04a91edabdb83584 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ConsecutivePointsSameType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ConsecutivePointsSameType.java @@ -20,20 +20,11 @@ import javax.xml.bind.annotation.XmlRootElement; import net.opengis.gml.DirectPositionType; @XmlRootElement(name = "GE_R_CONSECUTIVE_POINTS_SAME") -public class ConsecutivePointsSameType extends ValidationErrorType { +public class ConsecutivePointsSameType extends RingErrorType { - private String linearRingId; private DirectPositionType vertex1; private DirectPositionType vertex2; - public String getLinearRingId() { - return linearRingId; - } - - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - public void setVertex1(DirectPositionType vertex1) { this.vertex1 = vertex1; } @@ -52,7 +43,7 @@ public class ConsecutivePointsSameType extends ValidationErrorType { @Override public String toString() { - return "ConsecutivePointsSameType [linearRingId=" + linearRingId + ", vertex1=" + vertex1 + ", vertex2=" + vertex2 + return "ConsecutivePointsSameType [linearRingId=" + getLinearRingId() + ", vertex1=" + vertex1 + ", vertex2=" + vertex2 + "]"; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/HoleOutsideType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/HoleOutsideType.java index ae7f8b4ed371224d0b0bf3b151e0baddc72515e7..17d09fcd42b57e81aa43045f7a962e5b61cd8e31 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/HoleOutsideType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/HoleOutsideType.java @@ -18,23 +18,14 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_P_HOLE_OUTSIDE") -public class HoleOutsideType extends ValidationErrorType { +public class HoleOutsideType extends PolygonErrorType { - private String polygonId; private String linearRingId; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setLinearRingId(String linearRingId) { this.linearRingId = linearRingId; } - public String getPolygonId() { - return polygonId; - } - public String getLinearRingId() { return linearRingId; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InnerRingsNestedType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InnerRingsNestedType.java index 0c2438a464e994c215d98abdc463250e22ec7cc3..cce7ffe5a8163dce16e2727f41cb4f232841321e 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InnerRingsNestedType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InnerRingsNestedType.java @@ -18,16 +18,11 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_P_INNER_RINGS_NESTED") -public class InnerRingsNestedType extends ValidationErrorType { +public class InnerRingsNestedType extends PolygonErrorType { - private String polygonId; private String linearRingId1; private String linearRingId2; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setLinearRingId1(String linearRingId1) { this.linearRingId1 = linearRingId1; } @@ -36,10 +31,6 @@ public class InnerRingsNestedType extends ValidationErrorType { this.linearRingId2 = linearRingId2; } - public String getPolygonId() { - return polygonId; - } - public String getLinearRingId1() { return linearRingId1; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InteriorDisconnectedType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InteriorDisconnectedType.java index 45642ab45fec5757049e5c20325f1515bdd1021e..a8daaf0c305b1f397a5236274dd752016f196039 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InteriorDisconnectedType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/InteriorDisconnectedType.java @@ -18,16 +18,6 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_P_INTERIOR_DISCONNECTED") -public class InteriorDisconnectedType extends ValidationErrorType { - - private String polygonId; - - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - - public String getPolygonId() { - return polygonId; - } +public class InteriorDisconnectedType extends PolygonErrorType { } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/IntersectingRingsType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/IntersectingRingsType.java index 8f547dfb5d393c44a52d71867bdceac05ef951ac..7f47eef519d77e2d9938160a5a1e9732bad6502f 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/IntersectingRingsType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/IntersectingRingsType.java @@ -18,20 +18,11 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_P_INTERSECTING_RINGS") -public class IntersectingRingsType extends ValidationErrorType { +public class IntersectingRingsType extends PolygonErrorType { - private String polygonId; private String linearRingId1; private String linearRingId2; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - - public String getPolygonId() { - return polygonId; - } - public void setLinearRingId1(String linearRingId1) { this.linearRingId1 = linearRingId1; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/MultipleConnectedComponentsType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/MultipleConnectedComponentsType.java index 6d2e396a08d9ce6ac1334b7b2e5002a20f15acbe..0507eb04aa021306b9c2756c906de508850b730c 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/MultipleConnectedComponentsType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/MultipleConnectedComponentsType.java @@ -23,22 +23,12 @@ import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_S_MULTIPLE_CONNECTED_COMPONENTS") -public class MultipleConnectedComponentsType extends ValidationErrorType { - - private String geometryId; +public class MultipleConnectedComponentsType extends SolidErrorType { @XmlElementWrapper @XmlElement(name = "component") private List<Component> components; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - public boolean isSetComponents() { return components != null && !components.isEmpty(); } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldEdgeType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldEdgeType.java index cadaeff15b3362c5e1355ec86bacff4e3b2013bb..aac1ac8fe9a66c95ab27a81fc51f30e8285e6fc7 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldEdgeType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldEdgeType.java @@ -23,22 +23,12 @@ import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_S_NON_MANIFOLD_EDGE") -public class NonManifoldEdgeType extends ValidationErrorType { - - private String geometryId; +public class NonManifoldEdgeType extends SolidErrorType { @XmlElementWrapper @XmlElement(name = "edge") private List<EdgeType> edges; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - public boolean isSetEdges() { return edges != null && !edges.isEmpty(); } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldVertexType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldVertexType.java index f286ed3d46292bac2c2020d5ad53d35473d3b6ce..7b8f3a277b86f4e28f128e5eff363f7c04cb274c 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldVertexType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonManifoldVertexType.java @@ -20,23 +20,14 @@ import javax.xml.bind.annotation.XmlRootElement; import net.opengis.gml.DirectPositionType; @XmlRootElement(name = "GE_S_NON_MANIFOLD_VERTEX") -public class NonManifoldVertexType extends ValidationErrorType { +public class NonManifoldVertexType extends SolidErrorType { - private String geometryId; private DirectPositionType vertex; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - public void setVertex(DirectPositionType vertex) { this.vertex = vertex; } - public String getGeometryId() { - return geometryId; - } - public DirectPositionType getVertex() { return vertex; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarDistancePlaneType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarDistancePlaneType.java index b7d17e7d0154bada4a5a214b02a501bdc6aa7ca5..4e3523b7385bda889276a616382a2cfd4808f1f2 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarDistancePlaneType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarDistancePlaneType.java @@ -21,16 +21,11 @@ import net.opengis.gml.DirectPositionType; import net.opengis.gml.LengthType; @XmlRootElement(name = "GE_P_NON_PLANAR_POLYGON_DISTANCE_PLANE") -public class NonPlanarDistancePlaneType extends ValidationErrorType { +public class NonPlanarDistancePlaneType extends PolygonErrorType { - private String polygonId; private DirectPositionType vertex; private LengthType distance; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setVertex(DirectPositionType vertex) { this.vertex = vertex; } @@ -39,10 +34,6 @@ public class NonPlanarDistancePlaneType extends ValidationErrorType { this.distance = distance; } - public String getPolygonId() { - return polygonId; - } - public DirectPositionType getVertex() { return vertex; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarNormalsDeviationType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarNormalsDeviationType.java index 4dceda93c9b5a2aae20c6d88ddaa05c8e98ea70f..5471ad6b9a6d68c29bdc42ae0bc2bb18a5dba15c 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarNormalsDeviationType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/NonPlanarNormalsDeviationType.java @@ -20,23 +20,14 @@ import javax.xml.bind.annotation.XmlRootElement; import net.opengis.gml.AngleType; @XmlRootElement(name = "GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION") -public class NonPlanarNormalsDeviationType extends ValidationErrorType { +public class NonPlanarNormalsDeviationType extends PolygonErrorType { - private String polygonId; private AngleType deviation; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setDeviation(AngleType deviation) { this.deviation = deviation; } - public String getPolygonId() { - return polygonId; - } - public AngleType getDeviation() { return deviation; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/OrientationRingsSameType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/OrientationRingsSameType.java index 6ac0a5844a68cdde8806c4ab07bedcacce8a478c..a625724ee85acdbc0001bfc45dbede07a820da75 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/OrientationRingsSameType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/OrientationRingsSameType.java @@ -18,23 +18,14 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_P_ORIENTATION_RINGS_SAME") -public class OrientationRingsSameType extends ValidationErrorType { +public class OrientationRingsSameType extends PolygonErrorType { - private String polygonId; private String linearRingId; - public void setPolygonId(String polygonId) { - this.polygonId = polygonId; - } - public void setLinearRingId(String linearRingId) { this.linearRingId = linearRingId; } - public String getPolygonId() { - return polygonId; - } - public String getLinearRingId() { return linearRingId; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonErrorType.java new file mode 100644 index 0000000000000000000000000000000000000000..aec3160863ce571da00ad381232bbf062db5e664 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonErrorType.java @@ -0,0 +1,37 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlSeeAlso; + +@XmlSeeAlso({ InteriorDisconnectedType.class, IntersectingRingsType.class, HoleOutsideType.class, + InnerRingsNestedType.class, NonPlanarDistancePlaneType.class, NonPlanarNormalsDeviationType.class, + OrientationRingsSameType.class }) + +@XmlRootElement(name = "PolygonError") +public class PolygonErrorType extends ValidationErrorType { + + private String polygonId; + + public void setPolygonId(String polygonId) { + this.polygonId = polygonId; + } + + public String getPolygonId() { + return polygonId; + } +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonWrongOrientationType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonWrongOrientationType.java index d045ef21f608b9a666c4b1126b18cf756fb40d18..7cd6358290b1b0305ef903f97d0f9ac432546a67 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonWrongOrientationType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonWrongOrientationType.java @@ -23,22 +23,12 @@ import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_S_POLYGON_WRONG_ORIENTATION") -public class PolygonWrongOrientationType extends ValidationErrorType { - - private String geometryId; +public class PolygonWrongOrientationType extends SolidErrorType { @XmlElementWrapper @XmlElement(name = "edge") private List<EdgeType> edges; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - public boolean isSetEdges() { return edges != null && !edges.isEmpty(); } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingErrorType.java new file mode 100644 index 0000000000000000000000000000000000000000..90e7034c6d39a02dfedbeabe663f22fbd8a517c3 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingErrorType.java @@ -0,0 +1,36 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlSeeAlso; + +@XmlSeeAlso({ ConsecutivePointsSameType.class, RingNotClosedType.class, RingSelfIntersectionType.class, + TooFewPointsType.class }) +@XmlRootElement(name = "RingError") +public class RingErrorType extends ValidationErrorType { + + private String linearRingId; + + public String getLinearRingId() { + return linearRingId; + } + + public void setLinearRingId(String linearRingId) { + this.linearRingId = linearRingId; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingNotClosedType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingNotClosedType.java index 5194a40c9c4b3c573e4e1ee6abf2c7747d6c1010..e6b9e259a32fac9c22ffcdc8188c77948e4e3157 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingNotClosedType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingNotClosedType.java @@ -18,16 +18,6 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_R_NOT_CLOSED") -public class RingNotClosedType extends ValidationErrorType { - - private String linearRingId; - - public void setLinearRingId(String linarRingId) { - this.linearRingId = linarRingId; - } - - public String getLinearRingId() { - return linearRingId; - } +public class RingNotClosedType extends RingErrorType { } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntersectionType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntersectionType.java index 2c6d8bf08cd97fcd7762eed4446559d3181bb271..5e01f5933b5b6d61de7ea4c3295981d0c0165535 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntersectionType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingSelfIntersectionType.java @@ -20,19 +20,14 @@ import javax.xml.bind.annotation.XmlRootElement; import net.opengis.gml.DirectPositionType; @XmlRootElement(name = "GE_R_SELF_INTERSECTION") -public class RingSelfIntersectionType extends ValidationErrorType { +public class RingSelfIntersectionType extends RingErrorType { - private String linearRingId; private RingSelfIntType type; private EdgeType edge1; private EdgeType edge2; private DirectPositionType vertex1; private DirectPositionType vertex2; - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - public void setType(RingSelfIntType type) { this.type = type; } @@ -53,10 +48,6 @@ public class RingSelfIntersectionType extends ValidationErrorType { this.vertex2 = vertex2; } - public String getLinearRingId() { - return linearRingId; - } - public RingSelfIntType getType() { return type; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SemanticErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SemanticErrorType.java new file mode 100644 index 0000000000000000000000000000000000000000..da2e5a530e4a696fcc7864d16abd743554389a5e --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SemanticErrorType.java @@ -0,0 +1,25 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlSeeAlso; + +@XmlSeeAlso({ AttributeWrongValueType.class, AttributeMissingType.class }) +@XmlRootElement(name = "SemanticError") +public class SemanticErrorType extends ValidationErrorType { + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidErrorType.java new file mode 100644 index 0000000000000000000000000000000000000000..ad57862b1f0a54141462549e57d86f0ac78c6f35 --- /dev/null +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidErrorType.java @@ -0,0 +1,37 @@ +/*- + * Copyright 2020 Hochschule für Technik Stuttgart + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package de.hft.stuttgart.quality.model.jaxb; + +import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlSeeAlso; + +@XmlSeeAlso({ SolidNotClosedType.class, AllPolygonsWrongOrientationType.class, PolygonWrongOrientationType.class, + NonManifoldVertexType.class, NonManifoldEdgeType.class, TooFewPolygonsType.class, + MultipleConnectedComponentsType.class, SolidSelfIntersectionType.class }) +@XmlRootElement(name = "SolidError") +public class SolidErrorType extends ValidationErrorType { + + private String geometryId; + + public void setGeometryId(String geometryId) { + this.geometryId = geometryId; + } + + public String getGeometryId() { + return geometryId; + } + +} diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidNotClosedType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidNotClosedType.java index 06f676e7ca32880057539354627858d18a173c95..b2f64ddc4481995952adb1d49608734837c22bf9 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidNotClosedType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidNotClosedType.java @@ -23,22 +23,12 @@ import javax.xml.bind.annotation.XmlElementWrapper; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_S_NOT_CLOSED") -public class SolidNotClosedType extends ValidationErrorType { +public class SolidNotClosedType extends SolidErrorType { - private String geometryId; - @XmlElementWrapper @XmlElement(name = "edge") private List<EdgeType> edges; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - public boolean isSetEdges() { return edges != null && !edges.isEmpty(); } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidSelfIntersectionType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidSelfIntersectionType.java index de734a2e9749eade80a3839c13fa2d11855fda83..58e37bc4334f62f11b84c902332a51aedb1603cb 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidSelfIntersectionType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidSelfIntersectionType.java @@ -18,16 +18,11 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_S_SELF_INTERSECTION") -public class SolidSelfIntersectionType extends ValidationErrorType { +public class SolidSelfIntersectionType extends SolidErrorType { - private String geometryId; private String polygonId1; private String polygonId2; - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - public void setPolygonId1(String polygonId1) { this.polygonId1 = polygonId1; } @@ -36,10 +31,6 @@ public class SolidSelfIntersectionType extends ValidationErrorType { this.polygonId2 = polygonId2; } - public String getGeometryId() { - return geometryId; - } - public String getPolygonId1() { return polygonId1; } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPointsType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPointsType.java index 474a79e24f1e13481d387fd174c1311ed8dccec6..b790459367a25644ec613e7b651c17b6470e0186 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPointsType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPointsType.java @@ -18,46 +18,11 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_R_TOO_FEW_POINTS") -public class TooFewPointsType extends ValidationErrorType { - - private String linearRingId; - - public void setLinearRingId(String linearRingId) { - this.linearRingId = linearRingId; - } - - public String getLinearRingId() { - return linearRingId; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((linearRingId == null) ? 0 : linearRingId.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - TooFewPointsType other = (TooFewPointsType) obj; - if (linearRingId == null) { - if (other.linearRingId != null) - return false; - } else if (!linearRingId.equals(other.linearRingId)) - return false; - return true; - } +public class TooFewPointsType extends RingErrorType { @Override public String toString() { - return "TooFewPoints [linearRingId=" + linearRingId + "]"; + return "TooFewPoints [linearRingId=" + getLinearRingId() + "]"; } } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPolygonsType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPolygonsType.java index 5a49a971e6581a537fcc03502bd156f6ec9f11db..0bac474ebe6f9766353e44ac4dfd0e2f5c590190 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPolygonsType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/TooFewPolygonsType.java @@ -18,16 +18,6 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name = "GE_S_TOO_FEW_POLYGONS") -public class TooFewPolygonsType extends ValidationErrorType { +public class TooFewPolygonsType extends SolidErrorType { - private String geometryId; - - public void setGeometryId(String geometryId) { - this.geometryId = geometryId; - } - - public String getGeometryId() { - return geometryId; - } - } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationErrorType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationErrorType.java index e2502f0326c806697c0d0d34b9a194556cbb893d..42aee33d30480eb925d7f58004cc21b0c46152b4 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationErrorType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationErrorType.java @@ -17,18 +17,12 @@ package de.hft.stuttgart.quality.model.jaxb; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; +import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlSeeAlso; -import net.opengis.gml.AbstractFeatureType; - -@XmlSeeAlso({ ConsecutivePointsSameType.class, RingSelfIntersectionType.class, TooFewPointsType.class, - RingNotClosedType.class, InteriorDisconnectedType.class, IntersectingRingsType.class, - NonPlanarDistancePlaneType.class, InnerRingsNestedType.class, HoleOutsideType.class, - NonPlanarNormalsDeviationType.class, OrientationRingsSameType.class, AllPolygonsWrongOrientationType.class, - PolygonWrongOrientationType.class, NonManifoldVertexType.class, NonManifoldEdgeType.class, - SolidNotClosedType.class, TooFewPolygonsType.class, MultipleConnectedComponentsType.class, - AttributeWrongValueType.class, AttributeMissingType.class, SolidSelfIntersectionType.class }) +@XmlSeeAlso({ RingErrorType.class, PolygonErrorType.class, SolidErrorType.class, SemanticErrorType.class }) @XmlAccessorType(XmlAccessType.FIELD) -public abstract class ValidationErrorType extends AbstractFeatureType { +@XmlRootElement(name = "ValidationError") +public abstract class ValidationErrorType { } diff --git a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationType.java b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationType.java index 8aaaf3cb266dd33aed551d342669fd024c88c433..e8ef812dbbfe49ca1e2c7b4376716752ad3de550 100644 --- a/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationType.java +++ b/citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/ValidationType.java @@ -21,10 +21,10 @@ import javax.xml.bind.annotation.XmlType; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import de.hft.stuttgart.quality.marshaller.ZonedDateTimeAdapter; -import net.opengis.gml.AbstractFeatureType; +import net.opengis.gml.AbstractGMLType; @XmlType(name = "validation") -public class ValidationType extends AbstractFeatureType { +public class ValidationType extends AbstractGMLType { @XmlJavaTypeAdapter(ZonedDateTimeAdapter.class) private ZonedDateTime validationDate; 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 075985f083293d3a4bc5cf0ad91cb904b075414d..a5e528883a207a8f4ecee41fe1561250baf32fe2 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/citydoctor/qualityade/0.1.2", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = { - @javax.xml.bind.annotation.XmlNs(namespaceURI = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2", prefix = "qual") }) +@javax.xml.bind.annotation.XmlSchema(namespace = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED, xmlns = { + @javax.xml.bind.annotation.XmlNs(namespaceURI = "https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3", 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 b104238ebc05bcd467f738a62eafaab559a0f788..0cb8f4fcc3c8b4c199aa1221fbf026a4f4e9d4a6 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/citydoctor/qualityade/0.1.2" - targetNamespace="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" + xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" + targetNamespace="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" 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" @@ -45,34 +45,53 @@ </restriction> </simpleType> + <complexType name="ValidationError"> + </complexType> + + <complexType name="RingError"> + <complexContent> + <extension base="qual:ValidationError"> + <sequence> + <element name="linearRingId" type="string" /> + </sequence> + </extension> + </complexContent> + </complexType> + <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> + <complexContent> + <extension base="qual:RingError"> + <sequence> + <element name="vertex1" type="gml:DirectPositionType" /> + <element name="vertex2" type="gml:DirectPositionType" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="GE_R_TOO_FEW_POINTS"> - <sequence> - <element name="linearRingId" type="string" /> - </sequence> + <complexContent> + <extension base="qual:RingError" /> + </complexContent> </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> + <complexContent> + <extension base="qual:RingError"> + <sequence> + <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> + </extension> + </complexContent> </complexType> <simpleType name="ringSelfIntType"> @@ -91,66 +110,96 @@ </complexType> <complexType name="GE_R_NOT_CLOSED"> - <sequence> - <element name="linearRingId" type="string" /> - </sequence> + <complexContent> + <extension base="qual:RingError" /> + </complexContent> </complexType> - <complexType name="GE_P_INTERIOR_DISCONNECTED"> + <complexType name="PolygonError"> <sequence> <element name="polygonId" type="string" /> </sequence> </complexType> + <complexType name="GE_P_INTERIOR_DISCONNECTED"> + <complexContent> + <extension base="qual:PolygonError" /> + </complexContent> + </complexType> + <complexType name="GE_P_INTERSECTING_RINGS"> - <sequence> - <element name="polygonId" type="string" /> - <element name="linearRingId1" type="string" /> - <element name="linearRingId2" type="string" /> - </sequence> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="linearRingId1" type="string" /> + <element name="linearRingId2" type="string" /> + </sequence> + </extension> + </complexContent> </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> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="linearRingId1" type="string" /> + <element name="linearRingId2" type="string" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="GE_P_HOLE_OUTSIDE"> - <sequence> - <element name="polygonId" type="string" /> - <element name="linearRingId" type="string" /> - </sequence> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="linearRingId" type="string" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION"> - <sequence> - <element name="polygonId" type="string" /> - <element name="deviation" type="gml:AngleType"></element> - </sequence> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="deviation" type="gml:AngleType"></element> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="GE_P_ORIENTATION_RINGS_SAME"> - <sequence> - <element name="polygonId" type="string" /> - <element name="linearRingId" type="string" /> - </sequence> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="linearRingId" type="string" /> + </sequence> + </extension> + </complexContent> </complexType> - <complexType name="GE_S_ALL_POLYGONS_WRONG_ORIENTATION"> + <complexType name="SolidError"> <sequence> <element name="geometryId" type="string" /> </sequence> </complexType> + <complexType name="GE_S_ALL_POLYGONS_WRONG_ORIENTATION"> + <complexContent> + <extension base="qual:SolidError" /> + </complexContent> + </complexType> + <complexType name="GE_S_POLYGON_WRONG_ORIENTATION"> - <sequence> - <element name="geometryId" type="string" /> - <element name="edges" type="qual:EdgeList" /> - </sequence> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="edges" type="qual:EdgeList" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="EdgeList"> @@ -161,45 +210,60 @@ </complexType> <complexType name="GE_S_SELF_INTERSECTION"> - <sequence> - <element name="geometryId" type="string" /> - <element name="polygonId1" type="string" /> - <element name="polygonId2" type="string" /> - </sequence> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="polygonId1" type="string" /> + <element name="polygonId2" type="string" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="GE_S_NON_MANIFOLD_VERTEX"> - <sequence> - <element name="geometryId" type="string" /> - <element name="vertex" type="gml:DirectPositionType" /> - </sequence> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="vertex" type="gml:DirectPositionType" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="GE_S_NON_MANIFOLD_EDGE"> - <sequence> - <element name="geometryId" type="string" /> - <element name="edges" type="qual:EdgeList" /> - </sequence> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="edges" type="qual:EdgeList" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="GE_S_NOT_CLOSED"> - <sequence> - <element name="geometryId" type="string" /> - <element name="edges" type="qual:EdgeList" /> - </sequence> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="edges" type="qual:EdgeList" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="GE_S_TOO_FEW_POLYGONS"> - <sequence> - <element name="geometryId" type="string" /> - </sequence> + <complexContent> + <extension base="qual:SolidError" /> + </complexContent> </complexType> <complexType name="GE_S_MULTIPLE_CONNECTED_COMPONENTS"> - <sequence> - <element name="geometryId" type="string" /> - <element name="components" type="qual:ComponentList" /> - </sequence> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="components" type="qual:ComponentList" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="ComponentList"> @@ -221,27 +285,41 @@ regression plane </documentation> </annotation> - <sequence> - <element name="polygonId" type="string" /> - <element name="vertex" type="gml:DirectPositionType" /> - <element name="distance" type="gml:LengthType" /> - </sequence> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="vertex" type="gml:DirectPositionType" /> + <element name="distance" type="gml:LengthType" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="SemanticError"> </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> + <complexContent> + <extension base="qual:SemanticError"> + <sequence> + <element name="childId" type="string" minOccurs="0" /> + <element name="attributeName" type="string" /> + <element name="generic" type="boolean" /> + </sequence> + </extension> + </complexContent> </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> + <complexContent> + <extension base="qual:SemanticError"> + <sequence> + <element name="childId" type="string" minOccurs="0" /> + <element name="attributeName" type="string" /> + <element name="generic" type="boolean" /> + </sequence> + </extension> + </complexContent> </complexType> <complexType name="validationResultType"> @@ -311,8 +389,7 @@ type="qual:SE_ATTRIBUTE_WRONG_VALUE" minOccurs="0" maxOccurs="unbounded" /> <element name="SE_ATTRIBUTE_MISSING" - type="qual:SE_ATTRIBUTE_MISSING" minOccurs="0" - maxOccurs="unbounded" /> + type="qual:SE_ATTRIBUTE_MISSING" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="result" type="qual:result" /> </complexType> @@ -491,7 +568,6 @@ statistics of a validation process </documentation> </annotation> - <!-- <complexContent> <extension base="gml:AbstractFeatureType"> --> <sequence> <element name="validationDate" type="dateTime" /> <element name="validationSoftware" type="string" /> @@ -500,6 +576,5 @@ <element name="statistics" type="qual:statisticsType" maxOccurs="1" /> </sequence> - <!-- </extension> </complexContent> --> </complexType> </schema> \ No newline at end of file diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_AllPolygonsWrongOrientation.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_AllPolygonsWrongOrientation.gml index 44d0c5d77fc70c1832455cfd7447a8f7b7dddfe1..0ef3a62b964b1cb63ee7ea7282c04e17591a93c7 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_AllPolygonsWrongOrientation.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_AllPolygonsWrongOrientation.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml index a764003b5257e97a4b8e8ab1b7f2d9f4fb09e77f..3334930d3ee44c59205c842a1ee7bb28787681dd 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_Error_QualityADE.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_HoleOutside.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_HoleOutside.gml index fc63f7876b98e9c14495b2461395d6b121ee9cf8..6c3c99d0c3b531d001502e2049953cb2d66780fd 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_HoleOutside.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_HoleOutside.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_InnerRingNested.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_InnerRingNested.gml index bdcebc9ee8c4460beeea4c3016a38befc0711128..71f5720d1bc66a13f5b822c61c4932aa717abf70 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_InnerRingNested.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_InnerRingNested.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_InteriorDisconnected.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_InteriorDisconnected.gml index bdc2839f6b4e6ecb040023c9c964209db8cbe592..580a6efb54a44c95078331f21e0e6c9266738749 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_InteriorDisconnected.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_InteriorDisconnected.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_IntersectingRings.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_IntersectingRings.gml index 42c7304769a4057279361f1756955bdcf90a5c90..4acb0908ce8c823d86610b189a68c157da7bc853 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_IntersectingRings.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_IntersectingRings.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_MultipleConnectedComponents.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_MultipleConnectedComponents.gml index 2cebdd6941b3d7fae93926fbf5da825c5d4d8f83..87ae4d3964d2b434399cdd7b9864fceeba015adb 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_MultipleConnectedComponents.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_MultipleConnectedComponents.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonManifoldEdge.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonManifoldEdge.gml index fafb47049a888e3256eb12bfb247528566eaa15a..c0c52b980e66b19d8e5e3bd5dbda2b55ed726e65 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonManifoldEdge.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonManifoldEdge.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonManifoldVertex.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonManifoldVertex.gml index df2bd0ed1503f7f2d10b188363d98c463e9e2ae4..78ab1d33024611a5664300382bd170328bdd9082 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonManifoldVertex.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonManifoldVertex.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonPlanarPolygonDistancePlane.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonPlanarPolygonDistancePlane.gml index 0c4c02b49cc72f0e1df9d4fd67a022113b345dab..df2c5d462a5f90240e89759dae219064e4a5f91d 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonPlanarPolygonDistancePlane.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonPlanarPolygonDistancePlane.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonPlanarPolygonNormalsDeviation.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonPlanarPolygonNormalsDeviation.gml index 5d1996809a5238adcd6b8303024346b00e6f13d7..07af13edfd41f9c902dfa77e838649e46bb65364 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonPlanarPolygonNormalsDeviation.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_NonPlanarPolygonNormalsDeviation.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_OrientationRingsSame.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_OrientationRingsSame.gml index d33120af8a5a4fdcc89264179524e4a5f921b1a9..a5dfffece245fbd7933775498c535044bf49271c 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_OrientationRingsSame.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_OrientationRingsSame.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_PolygonWrongOrientation.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_PolygonWrongOrientation.gml index de653597cf5c9091bfc05bb118e038feb4e71caa..2ef9c8794665180a1f8d98fc3a9dd4aab00236da 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_PolygonWrongOrientation.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_PolygonWrongOrientation.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_RingNotClosed.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_RingNotClosed.gml index c4808fdd9a13bc09edeffcc0ef04fa6659fdf403..f01906282f981e46b3146ce76cc3257858a69a8d 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_RingNotClosed.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_RingNotClosed.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_RingSelfIntersection.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_RingSelfIntersection.gml index 510db18ddb36ce582992ec9edd82c43ab2922480..5b036f2ca8783e3b90e7b872a6630238731c5529 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_RingSelfIntersection.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_RingSelfIntersection.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_SolidNotClosed.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_SolidNotClosed.gml index 6ccfc419876164b9a6535bbb36ec300660915092..9e1267269e03eb3acb3da7c2c1ffe5ac5960500e 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_SolidNotClosed.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_SolidNotClosed.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_SolidSelfIntersection.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_SolidSelfIntersection.gml index 0bc7d6323212246d372adb0c2e408003d128d5d2..6d55c8adfb63d4423c953369d8ff5c810894d262 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_SolidSelfIntersection.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_SolidSelfIntersection.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_TooFewPoints.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_TooFewPoints.gml index c74ad2bb2f5c030db23350d787c2bf7383324612..244901c92c5571a3fd3a5a9c15f65504235c7251 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_TooFewPoints.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_TooFewPoints.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/citygml4j-quality-ade/src/test/resources/SimpleSolid_TooFewPolygons.gml b/citygml4j-quality-ade/src/test/resources/SimpleSolid_TooFewPolygons.gml index 4d89b0c731d8a86dfb19d4821c4fc2a4036863c3..af5412489646970541fa822d2524b385e6ff3116 100644 --- a/citygml4j-quality-ade/src/test/resources/SimpleSolid_TooFewPolygons.gml +++ b/citygml4j-quality-ade/src/test/resources/SimpleSolid_TooFewPolygons.gml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> -<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.2/qualityAde.xsd"> +<core:CityModel xmlns:core="http://www.opengis.net/citygml/2.0" xmlns:gen="http://www.opengis.net/citygml/generics/2.0" xmlns:bldg="http://www.opengis.net/citygml/building/2.0" xmlns:app="http://www.opengis.net/citygml/appearance/2.0" xmlns:dem="http://www.opengis.net/citygml/relief/2.0" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:qual="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/citygml/building/2.0 http://schemas.opengis.net/citygml/building/2.0/building.xsd http://www.opengis.net/citygml/appearance/2.0 http://schemas.opengis.net/citygml/appearance/2.0/appearance.xsd http://www.opengis.net/citygml/relief/2.0 http://schemas.opengis.net/citygml/relief/2.0/relief.xsd http://www.opengis.net/citygml/2.0 http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd http://www.opengis.net/citygml/generics/2.0 http://schemas.opengis.net/citygml/generics/2.0/generics.xsd https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3 https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3/qualityAde.xsd"> <!-- Einfaches Gebäude mit Grundriss 3m x 5m und Satteldach, Traufhöhe 3m, Firsthöhe 4,5m diff --git a/public/0.1.3/qualityAde.xsd b/public/0.1.3/qualityAde.xsd new file mode 100644 index 0000000000000000000000000000000000000000..0cb8f4fcc3c8b4c199aa1221fbf026a4f4e9d4a6 --- /dev/null +++ b/public/0.1.3/qualityAde.xsd @@ -0,0 +1,580 @@ +<?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/citydoctor/qualityade/0.1.3" + targetNamespace="https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/0.1.3" + 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="ValidationError"> + </complexType> + + <complexType name="RingError"> + <complexContent> + <extension base="qual:ValidationError"> + <sequence> + <element name="linearRingId" type="string" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_R_CONSECUTIVE_POINTS_SAME"> + <annotation> + <documentation>Consecutive point are the same</documentation> + </annotation> + <complexContent> + <extension base="qual:RingError"> + <sequence> + <element name="vertex1" type="gml:DirectPositionType" /> + <element name="vertex2" type="gml:DirectPositionType" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_R_TOO_FEW_POINTS"> + <complexContent> + <extension base="qual:RingError" /> + </complexContent> + </complexType> + + <complexType name="GE_R_SELF_INTERSECTION"> + <complexContent> + <extension base="qual:RingError"> + <sequence> + <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> + </extension> + </complexContent> + </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"> + <complexContent> + <extension base="qual:RingError" /> + </complexContent> + </complexType> + + <complexType name="PolygonError"> + <sequence> + <element name="polygonId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_P_INTERIOR_DISCONNECTED"> + <complexContent> + <extension base="qual:PolygonError" /> + </complexContent> + </complexType> + + <complexType name="GE_P_INTERSECTING_RINGS"> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="linearRingId1" type="string" /> + <element name="linearRingId2" type="string" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_P_INNER_RINGS_NESTED"> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="linearRingId1" type="string" /> + <element name="linearRingId2" type="string" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_P_HOLE_OUTSIDE"> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="linearRingId" type="string" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType + name="GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION"> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="deviation" type="gml:AngleType"></element> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_P_ORIENTATION_RINGS_SAME"> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="linearRingId" type="string" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="SolidError"> + <sequence> + <element name="geometryId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_S_ALL_POLYGONS_WRONG_ORIENTATION"> + <complexContent> + <extension base="qual:SolidError" /> + </complexContent> + </complexType> + + <complexType name="GE_S_POLYGON_WRONG_ORIENTATION"> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="edges" type="qual:EdgeList" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="EdgeList"> + <sequence> + <element name="edge" type="qual:edgeType" + maxOccurs="unbounded" /> + </sequence> + </complexType> + + <complexType name="GE_S_SELF_INTERSECTION"> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="polygonId1" type="string" /> + <element name="polygonId2" type="string" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_S_NON_MANIFOLD_VERTEX"> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="vertex" type="gml:DirectPositionType" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_S_NON_MANIFOLD_EDGE"> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="edges" type="qual:EdgeList" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_S_NOT_CLOSED"> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="edges" type="qual:EdgeList" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="GE_S_TOO_FEW_POLYGONS"> + <complexContent> + <extension base="qual:SolidError" /> + </complexContent> + </complexType> + + <complexType name="GE_S_MULTIPLE_CONNECTED_COMPONENTS"> + <complexContent> + <extension base="qual:SolidError"> + <sequence> + <element name="components" type="qual:ComponentList" /> + </sequence> + </extension> + </complexContent> + </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> + <complexContent> + <extension base="qual:PolygonError"> + <sequence> + <element name="vertex" type="gml:DirectPositionType" /> + <element name="distance" type="gml:LengthType" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="SemanticError"> + </complexType> + + <complexType name="SE_ATTRIBUTE_WRONG_VALUE"> + <complexContent> + <extension base="qual:SemanticError"> + <sequence> + <element name="childId" type="string" minOccurs="0" /> + <element name="attributeName" type="string" /> + <element name="generic" type="boolean" /> + </sequence> + </extension> + </complexContent> + </complexType> + + <complexType name="SE_ATTRIBUTE_MISSING"> + <complexContent> + <extension base="qual:SemanticError"> + <sequence> + <element name="childId" type="string" minOccurs="0" /> + <element name="attributeName" type="string" /> + <element name="generic" type="boolean" /> + </sequence> + </extension> + </complexContent> + </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> + <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> + </complexType> +</schema> \ No newline at end of file