From 017aeb12b736c20d18873f3600dd44d50246b7fe Mon Sep 17 00:00:00 2001 From: Matthias Betz <matthias.betz@hft-stuttgart.de> Date: Fri, 11 Jun 2021 11:27:29 +0200 Subject: [PATCH] fixing inheritance abundance where not needed, release 1.3 --- citygml4j-quality-ade/pom.xml | 2 +- .../stuttgart/quality/QualityADEContext.java | 2 +- .../stuttgart/quality/QualityADEModule.java | 28 +- .../model/AllPolygonsWrongOrientation.java | 40 +- .../quality/model/AttributeMissing.java | 28 +- .../quality/model/AttributeWrongValue.java | 28 +- .../stuttgart/quality/model/ChildObject.java | 53 ++ .../quality/model/ConsecutivePointsSame.java | 41 +- .../stuttgart/quality/model/HoleOutside.java | 39 +- .../quality/model/InnerRingsNested.java | 39 +- .../quality/model/InteriorDisconnected.java | 40 +- .../quality/model/IntersectingRings.java | 39 +- .../model/MultipleConnectedComponents.java | 37 +- .../quality/model/NonManifoldEdge.java | 37 +- .../quality/model/NonManifoldVertex.java | 40 +- .../quality/model/NonPlanarDistancePlane.java | 38 +- .../model/NonPlanarNormalsDeviation.java | 39 +- .../quality/model/OrientationRingsSame.java | 39 +- .../stuttgart/quality/model/PolygonError.java | 31 + .../model/PolygonWrongOrientation.java | 39 +- .../stuttgart/quality/model/RingError.java | 31 + .../quality/model/RingNotClosed.java | 42 +- .../quality/model/RingSelfIntersection.java | 40 +- .../quality/model/SemanticError.java | 22 + .../stuttgart/quality/model/SolidError.java | 30 + .../quality/model/SolidNotClosed.java | 45 +- .../quality/model/SolidSelfIntersection.java | 39 +- .../stuttgart/quality/model/TooFewPoints.java | 41 +- .../quality/model/TooFewPolygons.java | 41 +- .../stuttgart/quality/model/Validation.java | 29 +- .../quality/model/ValidationError.java | 7 +- .../jaxb/AllPolygonsWrongOrientationType.java | 12 +- .../model/jaxb/AttributeMissingType.java | 2 +- .../model/jaxb/AttributeWrongValueType.java | 2 +- .../model/jaxb/ConsecutivePointsSameType.java | 13 +- .../quality/model/jaxb/HoleOutsideType.java | 11 +- .../model/jaxb/InnerRingsNestedType.java | 11 +- .../model/jaxb/InteriorDisconnectedType.java | 12 +- .../model/jaxb/IntersectingRingsType.java | 11 +- .../jaxb/MultipleConnectedComponentsType.java | 12 +- .../model/jaxb/NonManifoldEdgeType.java | 12 +- .../model/jaxb/NonManifoldVertexType.java | 11 +- .../jaxb/NonPlanarDistancePlaneType.java | 11 +- .../jaxb/NonPlanarNormalsDeviationType.java | 11 +- .../model/jaxb/OrientationRingsSameType.java | 11 +- .../quality/model/jaxb/PolygonErrorType.java | 37 ++ .../jaxb/PolygonWrongOrientationType.java | 12 +- .../quality/model/jaxb/RingErrorType.java | 36 ++ .../quality/model/jaxb/RingNotClosedType.java | 12 +- .../model/jaxb/RingSelfIntersectionType.java | 11 +- .../quality/model/jaxb/SemanticErrorType.java | 25 + .../quality/model/jaxb/SolidErrorType.java | 37 ++ .../model/jaxb/SolidNotClosedType.java | 12 +- .../model/jaxb/SolidSelfIntersectionType.java | 11 +- .../quality/model/jaxb/TooFewPointsType.java | 39 +- .../model/jaxb/TooFewPolygonsType.java | 12 +- .../model/jaxb/ValidationErrorType.java | 14 +- .../quality/model/jaxb/ValidationType.java | 4 +- .../quality/model/jaxb/package-info.java | 4 +- .../src/main/resources/qualityAde.xsd | 263 +++++--- ...impleSolid_AllPolygonsWrongOrientation.gml | 2 +- .../SimpleSolid_Error_QualityADE.gml | 2 +- .../resources/SimpleSolid_HoleOutside.gml | 2 +- .../resources/SimpleSolid_InnerRingNested.gml | 2 +- .../SimpleSolid_InteriorDisconnected.gml | 2 +- .../SimpleSolid_IntersectingRings.gml | 2 +- ...impleSolid_MultipleConnectedComponents.gml | 2 +- .../resources/SimpleSolid_NonManifoldEdge.gml | 2 +- .../SimpleSolid_NonManifoldVertex.gml | 2 +- ...pleSolid_NonPlanarPolygonDistancePlane.gml | 2 +- ...Solid_NonPlanarPolygonNormalsDeviation.gml | 2 +- .../SimpleSolid_OrientationRingsSame.gml | 2 +- .../SimpleSolid_PolygonWrongOrientation.gml | 2 +- .../resources/SimpleSolid_RingNotClosed.gml | 2 +- .../SimpleSolid_RingSelfIntersection.gml | 2 +- .../resources/SimpleSolid_SolidNotClosed.gml | 2 +- .../SimpleSolid_SolidSelfIntersection.gml | 2 +- .../resources/SimpleSolid_TooFewPoints.gml | 2 +- .../resources/SimpleSolid_TooFewPolygons.gml | 2 +- public/0.1.3/qualityAde.xsd | 580 ++++++++++++++++++ 80 files changed, 1155 insertions(+), 1180 deletions(-) create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/ChildObject.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/PolygonError.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/RingError.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SemanticError.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/SolidError.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/PolygonErrorType.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/RingErrorType.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SemanticErrorType.java create mode 100644 citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/jaxb/SolidErrorType.java create mode 100644 public/0.1.3/qualityAde.xsd diff --git a/citygml4j-quality-ade/pom.xml b/citygml4j-quality-ade/pom.xml index 1474e69..4c65c09 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 aef857c..f1e7d58 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 3b1f54f..9270a25 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 ebc2cc1..0b384b7 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 6d339fa..d3eee9b 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 8816734..b881559 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 0000000..39aec6d --- /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 d4ce99e..91cb869 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 2547b7b..4804bb0 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 dc9013e..b1f886d 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 dbaab2e..64da8cc 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 518d65f..cab11d6 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 087995c..c69d6a1 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 39f9ade..3d07d31 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 3b646c4..b1d9b53 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 6612f5e..fd0292f 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 4fbf8d1..faa5a4f 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 653153f..16ab55e 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 0000000..12e9c5e --- /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 e5ff020..965491b 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 0000000..d17e507 --- /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 78603b2..4c52b24 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 cbb6fce..fd11024 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 0000000..b2741c3 --- /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 0000000..d20493c --- /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 b8e26c6..71a9b13 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 664eead..423512c 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 829a627..7e12722 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 21fd990..19abc23 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 bba251e..2ee30ba 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 8be6f35..a1b5a8e 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 afbdb57..f582f22 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 c2cbb61..ce13091 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 6ea84b5..a3596b9 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 1de6be6..4a584f0 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 ae7f8b4..17d09fc 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 0c2438a..cce7ffe 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 45642ab..a8daaf0 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 8f547df..7f47eef 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 6d2e396..0507eb0 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 cadaeff..aac1ac8 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 f286ed3..7b8f3a2 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 b7d17e7..4e3523b 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 4dceda9..5471ad6 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 6ac0a58..a625724 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 0000000..aec3160 --- /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 d045ef2..7cd6358 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 0000000..90e7034 --- /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 5194a40..e6b9e25 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 2c6d8bf..5e01f59 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 0000000..da2e5a5 --- /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 0000000..ad57862 --- /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 06f676e..b2f64dd 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 de734a2..58e37bc 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 474a79e..b790459 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 5a49a97..0bac474 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 e2502f0..42aee33 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 8aaaf3c..e8ef812 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 075985f..a5e5288 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 b104238..0cb8f4f 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 44d0c5d..0ef3a62 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 a764003..3334930 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 fc63f78..6c3c99d 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 bdcebc9..71f5720 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 bdc2839..580a6ef 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 42c7304..4acb090 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 2cebdd6..87ae4d3 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 fafb470..c0c52b9 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 df2bd0e..78ab1d3 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 0c4c02b..df2c5d4 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 5d19968..07af13e 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 d33120a..a5dfffe 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 de65359..2ef9c87 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 c4808fd..f019062 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 510db18..5b036f2 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 6ccfc41..9e12672 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 0bc7d63..6d55c8a 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 c74ad2b..244901c 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 4d89b0c..af54124 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 0000000..0cb8f4f --- /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 -- GitLab