DataTypes

DataTypes

Naming conventions

Datatype names are written in UpperCamelCase and end with 'Type' e.g. CodeAircraftType.

Stereotypes

The UML model lists the datatypes that are used throughout the AIXM. These are given one of the two following stereotypes:

  • <<datatype>> - This is basic data type that specifies a pattern to use.
  • <<codelist>> - This is a data type which codes a predefined list of values. The <<codelist>> includes the value OTHER which can be expanded with some free text in uppercase ("OTHER:MY_VALUE") to support un-supported values.

  

nilReason attribute

All the data types used to type AIXM simple properties define a nilReason, which is used to indicate the reason for a null value. This is realized in AIXM 5.1 by introducing

  • A base type, which contains the core "business" information, such as a range of value for <<datatype>>, or the list of string values for <<codelist>>
  • A derived data type, which explicitly declares the nilReason attribute, and which is used to type the corresponding AIXM simple properties.

On the example above, the base type used to represent an angle is named ValAngle{*}BaseType{*}. It derives from decimal and defines the range of values allowed for an angle percentage (\[-180;180\]). The derived datatype ValAngle{*}Type* inherits from ValAngleBaseType and includes the nilReason, typed with NilReasonEnumeration. ValAngle{*}Type* is always used to type the percentages specified in AIXM features or AIXM objects.



A limited set of data types defined in the AIXM 5.1 UML model are not used to type directly AIXM simple properties but are basic classes from which several AIXM data types inherit. These data types are: AlphaType, AlphaNumericType, Character1, Character2, Character3. They do not require a nilReason attribute, and consequently, no corresponding BaseType types are defined in the AIXM UML model.


Unit of measurement

In addition, certain <<datatype>> might have an associated Unit Of Measurement. This is indicated in the model by the inclusion of a "uom" attribute at the same level as the nilReason attribure, i.e in the definition of the derived <<datatype>> class. The type of the uom attribute is typically a <<codelist>> class, as shown below:


Note that the <<codelist>> types representing Units of Measurement do not require a nilReason. As a consequence, no base type is created for uom.



Related content