Purpose: Verify that the features provided in the dataset adhere to the constraints specified in the INSPIRE application schema.
Prerequisites
Test method
The following checks are performed for every feature in the dataset.
-
Check that vector statistical units with a reference geometry instance of GM_MultiSurface are instances of the specialised class AreaStatisticalUnit (AreaStatisticalUnitsConstraint).
-
Check that the reference geometry of an area statistical units is a GM_MultiSurface or GM_Surface (Support for the additional geometry type GM_Surface was introduced due to the unclear wording of the related constraint. More info are available in the following issue).
-
Check that the mostDetailedScale and leastDetailedScale fields are provided only for geometry descriptors with a type generalisedGeometry (GeneralisedGeometryConstraint).
-
Check that, if provided, mostDetailedScale is smaller than leastDetailedScale (ScaleRelationConstraint).
The following checks shall be manually performed for every feature in the dataset related to the spatial object type Evolution:
- Evolution representations shall be consistent with the versions of the concerned objects.
- An evolution with a typeValue “creation” shall not have any initial unit versions and only one final one.
- An evolution with a typeValue “deletion” shall have one initial unit versions and no final one.
- An evolution with a typeValue “aggregation” shall have at least two initial unit versionss (the units to be aggregated) and a single final one (the resulting aggregation).
- An evolution with a typeValue “change” shall have one initial unit versions and one final one.
- An evolution with a typeValue “splitting” shall have a single initial unit versions (the unit to split), and at least two final ones (the units resulting from the splitting).
Reference(s):
- TG DS Template IR requirement Article 4 (2)
- TG DS-SU 5.3.1.2.3.
Test type: Automated + Manual
Notes
Verify that the OCL constraints that are specified in the UML model of the application schema are met, i.e. validate features against the constraints. For unmet constraints report constraintViolation.
Identifier | Message text (parameters start with '$') |
---|---|
constraintViolation | XML document '$filename', $featureType '$gmlid': The constraint '$constraint' is violated. |
The namespace prefixes used as described in README.
Abbreviation | XPath expression | Multiplicity | Voidable |
---|---|---|---|
reference geometry (VectorStatisticalUnit) | //schema-element(su-vector:VectorStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometryDescriptor/su-vector:GeometryDescriptor/su-vector:geometryType/@xlink:href="http://inspire.ec.europa.eu/codelist/GeometryTypeValue/referenceGeometry" | 1 (1..* for the parent) | No |
GM_MultiSurface (VectorStatisticalUnit) | //schema-element(su-vector:VectorStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometry/gml:MultiSurface | 1 (1..* for the parent) | No |
reference geometry (AreaStatisticalUnit) | //schema-element(su-vector:AreaStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometryDescriptor/su-vector:GeometryDescriptor/su-vector:geometryType/@xlink:href="http://inspire.ec.europa.eu/codelist/GeometryTypeValue/referenceGeometry" | 1 (1..* for the parent) | No |
GM_MultiSurface (AreaStatisticalUnit) | //schema-element(su-vector:AreaStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometry/gml:MultiSurface | 1 (1..* for the parent) | No |
GM_Surface (AreaStatisticalUnit) | //schema-element(su-vector:AreaStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometry/gml:Surface | 1 (1..* for the parent) | No |
mostDetailedScale | //schema-element(su-vector:AreaStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometryDescriptor/su-vector:GeometryDescriptor/su-vector:mostDetailedScale //schema-element(su-vector:VectorStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometryDescriptor/su-vector:GeometryDescriptor/su-vector:mostDetailedScale |
0..1 (1..* for the parent) | No |
leastDetailedScale | //schema-element(su-vector:AreaStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometryDescriptor/su-vector:GeometryDescriptor/su-vector:leastDetailedScale //schema-element(su-vector:VectorStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometryDescriptor/su-vector:GeometryDescriptor/su-vector:leastDetailedScale |
0..1 (1..* for the parent) | No |
Generalised Geometry | //schema-element(su-vector:AreaStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometryDescriptor/su-vector:GeometryDescriptor/su-vector:geometryType/@xlink:href="http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry" //schema-element(su-vector:VectorStatisticalUnit)/su-vector:geometry/su-vector:VectorStatisticalUnitGeometry/su-vector:geometryDescriptor/su-vector:GeometryDescriptor/su-vector:geometryType/@xlink:href="http://inspire.ec.europa.eu/codelist/GeometryTypeValue/generalisedGeometry" |
1 (1..* for the parent) | No |
typeValue | //schema-element(su-vector:Evolution)/su-vector:evolutionType/@xlink:href | 1 | No |
initialUnitVersions | //schema-element(su-vector:Evolution)/su-vector:initialUnitVersions/@xlink:href | 0..* | Yes |
finalUnitVersions | //schema-element(su-vector:Evolution)/su-vector:finalUnitVersions/@xlink:href | 0..* | Yes |