diff --git a/public/0.1/qualityAde.xsd b/public/0.1/qualityAde.xsd index 93a9b299ea1734fd3b17701c36104ae692fadc12..174dc3f8a487c585b384eb354f6ae146b8836043 100644 --- a/public/0.1/qualityAde.xsd +++ b/public/0.1/qualityAde.xsd @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> -<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:qual="https://transfer.hft-stuttgart.de/pages/qualityade/0.1" - targetNamespace="https://transfer.hft-stuttgart.de/pages/qualityade/0.1" xmlns: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"> +<schema xmlns="http://www.w3.org/2001/XMLSchema" + xmlns:qual="https://transfer.hft-stuttgart.de/pages/qualityade/0.1" + targetNamespace="https://transfer.hft-stuttgart.de/pages/qualityade/0.1" + xmlns: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" @@ -51,6 +52,137 @@ </sequence> </complexType> + <complexType name="GE_R_TOO_FEW_POINTS"> + <sequence> + <element name="linearRingId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_R_SELF_INTERSECTION"> + <sequence> + <element name="linearRingId" type="string" /> + <element name="type" type="string" /> + <element name="edge1" type="qual:edgeType" /> + <element name="edge2" type="qual:edgeType" /> + <element name="vertex" type="gml:DirectPositionType" /> + </sequence> + </complexType> + + <complexType name="edgeType"> + <sequence> + <element name="from" type="gml:DirectPositionType" /> + <element name="to" type="gml:DirectPositionType" /> + </sequence> + </complexType> + + <complexType name="GE_R_NOT_CLOSED"> + <sequence> + <element name="linearRingId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_P_INTERIOR_DISCONNECTED"> + <sequence> + <element name="polygonId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_P_INTERSECTING_RINGS"> + <sequence> + <element name="polygonId" type="string" /> + <element name="linearRingId1" type="string" /> + <element name="linearRingId2" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_P_INNER_RINGS_NESTED"> + <sequence> + <element name="polygonId" type="string" /> + <element name="linearRingId1" type="string" /> + <element name="linearRingId2" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_P_HOLE_OUTSIDE"> + <sequence> + <element name="polygonId" type="string" /> + <element name="linearRingId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_P_NON_PLANAR_POLYGON_NORMALS_DEVIATION"> + <sequence> + <element name="polygonId" type="string" /> + <element name="deviation" type="gml:AngleType"></element> + </sequence> + </complexType> + + <complexType name="GE_P_ORIENTATION_RINGS_SAME"> + <sequence> + <element name="polygonId" type="string" /> + <element name="linearRingId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_S_ALL_POLYGONS_WRONG_ORIENTATION"> + <sequence> + <element name="geoemtryId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_S_POLYGON_WRONG_ORIENTATION"> + <sequence> + <element name="geometryId" type="string" /> + <element name="polygonId" type="string" maxOccurs="unbounded" /> + </sequence> + </complexType> + + <complexType name="GE_S_SELF_INTERSECTION"> + <sequence> + <element name="geometryId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_S_NON_MANIFOLD_VERTEX"> + <sequence> + <element name="geometryId" type="string" /> + <element name="vertex" type="gml:DirectPositionType" /> + </sequence> + </complexType> + + <complexType name="GE_S_NON_MANIFOLD_EDGE"> + <sequence> + <element name="geometryId" type="string" /> + <element name="edge" type="qual:edgeType" maxOccurs="unbounded" /> + </sequence> + </complexType> + + <complexType name="GE_S_NOT_CLOSED"> + <sequence> + <element name="geometryId" type="string" /> + <element name="edge" type="qual:edgeType" maxOccurs="unbounded" /> + </sequence> + </complexType> + + <complexType name="GE_S_TOO_FEW_POLYGONS"> + <sequence> + <element name="geometryId" type="string" /> + </sequence> + </complexType> + + <complexType name="GE_S_MULTIPLE_CONNECTED_COMPONENTS"> + <sequence> + <element name="geometryId" type="string" /> + <element name="components" type="qual:componentsType" maxOccurs="unbounded" /> + </sequence> + </complexType> + + <complexType name="componentsType"> + <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 @@ -64,6 +196,22 @@ </sequence> </complexType> + <complexType name="SEM_ATTRIBUTE_WRONG_VALUE"> + <sequence> + <element name="childId" type="string" /> + <element name="attributeName" type="string" /> + <element name="generic" type="boolean" /> + </sequence> + </complexType> + + <complexType name="SEM_ATTRIBUTE_MISSING"> + <sequence> + <element name="childId" type="string" /> + <element name="attributeName" type="string" /> + <element name="generic" type="boolean" /> + </sequence> + </complexType> + <complexType name="validationResultsType"> <annotation> <documentation>Data structure containing validation results for @@ -71,10 +219,42 @@ </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="SEM_ATTRIBUTE_WRONG_VALUE" type="qual:SEM_ATTRIBUTE_WRONG_VALUE" minOccurs="0" + maxOccurs="unbounded" /> + <element name="SEM_ATTRIBUTE_MISSING" type="qual:SEM_ATTRIBUTE_MISSING" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="result" type="qual:result" /> </complexType> @@ -103,11 +283,16 @@ <enumeration value="R_GE_S_NON_MANIFOLD_VERTEX" /> <enumeration value="R_GE_S_SELF_INTERSECTION" /> <enumeration value="R_GE_S_MULTIPLE_CONNECTED_COMPONENTS" /> + <enumeration value="R_SEM_ATTRIBUTES_EXISTING" /> + <enumeration value="R_SEM_ATTRIBUTES_CORRECT" /> </restriction> </simpleType> <complexType name="parameter"> - + <sequence> + <element name="name" type="string" /> + <element name="value" type="string" /> + </sequence> </complexType> <complexType name="requirementType"> @@ -129,7 +314,32 @@ </documentation> </annotation> <sequence> + <element name="global_requirements" type="qual:globalRequirementsType" /> <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="globalRequirementsType"> + <sequence> + <element name="parameter" type="qual:parameter" /> </sequence> </complexType> @@ -139,6 +349,57 @@ 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"> + <attribute name="occurences" type="int"></attribute> + <attribute name="name" type="qual:errorId"></attribute> + </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="SEM_ATTRIBUTE_WRONG_VALUE" /> + <enumeration value="SEM_ATTRIBUTE_MISSING" /> + </restriction> + </simpleType> + + <complexType name="featureStatistics"> + <attribute name="numChecked" type="int" /> + <attribute name="numErrors" type="int" /> </complexType> <element name="validation" type="qual:validationType" substitutionGroup="gml:_GML" />