Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Definitions

Feature ObjectquantityFeature Object quantityunspecified)?Feature Object
IdentifierCondition expressionMeaning
D_NounDescendNouns

(

 Object /

dataSet ) (has / has-descendant) (

quantityOrRange)? propertyPath

A child or descendant element of an AIXM featuredata set/object is present in the data set

Examples: AirspaceTimeSlice has type ; AirspaceTimeSlice has at-least 2 annotation

DV_NounDescendNounsValue

(

 Object /

dataSet )  (has / has-descendant)

(

quantityOrRange)? propertyPath value

Object / dataSet )  (

has / has-descendant)  propertyPath value  unspecified

A child or descendant element of an AIXM featuredata set/object is present in the data set and either has an assigned value or it is an empty element). For empty elements, it is not possible to specify a quantity of range (such as "at-least 2 annotation value unspecified")

Examples: AirspaceTimeSlice has type value ; AirspaceTimeSlice has name value unspecified

DG_NounDescendNounsGeo

Object / dataSet )  (has / has-descendant) (quantityOrRange)? propertyPath location / extent

Object / dataSet )  (has / has-descendant)  propertyPathlocation unspecified / extent unspecified


A child or descendant element of an AIXM data set/object is present and either has an assigned  geographical location or extent or it is an empty element). For empty elements, it is not possible to specify a quantity of range (such as "at-least 2 horizontalProjection.Surface extent unspecified")

Examples: AirportHeliportTimeSlice has ARP.ElevatedPoint location ; AirportHeliportTimeSlice has ARP.ElevatedPoint location unspecified

DT_NounDescendNounsTime

Object / dataSet )  (has / has-descendant) (quantityOrRange)? propertyPath instant / period

Object / dataSet )  (has / has-descendant)  propertyPathinstant unspecified / period unspecified


A child or descendant element of an AIXM data set/object is present and either has an assigned  time instance or period or it is an empty element). For empty elements, it is not possible to specify a quantity of range (such as "at-least 2 TimePeriod period unspecified")

Examples: AirportHeliportTimeSlice has gml:validTime.TimeInstance instant ; AirportHeliportTimeSlice has gml:validTime.TimePeriod period unspecified

DVT_NounDescendNounsTest( Object / dataSet )  (has / has-descendant) (quantity) propertyPath value  (compareWith 'valueOrList' / #free test#)

A child or descendant element of an AIXM featuredata set/object is present in the data set and it has an assigned value that complies with a test. The test is either a comparison with a value or a list of allowable values or it is a free test.

Examples: AirspaceTimeSlice has type value equal-to as 'TMA' ; AirspaceTimeSlice has name value #that includes the word 'Brussels'#

Where propertyPath = property ("." Object "." property)*

Mapping to AIXM XML structure

This group of elementary conditions test the existence or the value of the child or descendant nodes of an AIXM XML element. They have the following particularities:

  • the "entry node' is an AIXM XML element that corresponds to an AIXM class with stereotype <<feature>> or <<object>>, such as Airspace, Runway, City, ElevatedPoint, etc, This includes FetaureTimeSlice classes, such as AirspaceTimeSlice, RunwayTimeSlice, etc.
  • some particular rules require the whole data set to be treated as an entry node. For example, a rule that constrains the value of the gml:srsName attribute may be written from the data set as "entry node" because it applies any gml:srsName, wherever it is located within that data set; 
  • has is used when the element that is tested is a direct child element (in the XML sense) of the feature/object or when the full path, starting with the child element is provided.
  • has-descendant is used when the element that is tested is a deeper descendant (in the XML sense) of the feature/object. In principle, child elements are also descendants. However, for editorial clarity, 'descendant' should not be used for direct child elements.

The following diagram shows how has and has-descendant are interpreted in the AIXM XML structure.

Special situation - multiple descendants

Many properties in AIXM can be multi-occurring. For example, an AirspaceTimeSlice can have several geometryComponent.AirspaceVolume child/descendant elements. This has two main consequences on the interpretation of the rules:mean that all occurrences of the child/descendant needs to be considered in the evaluation of the rule. This does not mean that they all need to be tested! For example, if an elementary condition is formulated with "at-least one" and a first occurrence is found, the remaining ones might not need to be effectively tested, However, in other circumstances, all occurrences need to effectively be tested against the rule

.
  • the same occurrence need to be used in all elementary conditions, unless there is an explicit "[1]", "[2]", etc. suffix after the noun that indicates that different instances are referenced.
  • For example, considering the (fictitious) rule: It is prohibited that AirspaceTimeSlice has-descendant AirspaceVolume.upperLimit value lower-than AirspaceVolume.lowerLimit value, the two interpretation aspects highlighted above mean that:

  • if the AirspaceTimeSlice has several AirspaceVolume descendants, the rule needs to be tested for each of them;
  • the lowerLimit value needs to be compared with the upperLimit value of the same AirspaceVolume ;Note: if it was necessary to compare the upper limit of one airspace volume with the lower limit of (all) another airspace volume, then the rule would be written differently: It is prohibited that AirspaceTimeSlice has-descendant AirspaceVolume[1].upperLimit value lower-than AirspaceVolume[2].lowerLimit value, The suffixes "[1]" and "[2]" are used in order to indicate that two different AirspaceVolume are concerned.