Package com.luciad.format.aixm51.model


package com.luciad.format.aixm51.model

This package contains a domain model to represent an AIXM 5.1 data source. Classes are available that represent AIXM 5.1 messages, features, timeslices and other objects.

The basic information unit in an AIXM 5.1 dataset is a feature. A feature corresponds to a real object in the aeronautical environment, such as an aerodrome, runway, navaid, route, etc. Each AIXM 5.1 feature consists of one or more timeslices, that describe the state of the feature during a certain time period. As the structure of all feature types is the same, they are all mapped on the class TLcdAIXM51Feature. This class is a generic class that takes the feature's time slice class as parameter. There is a timeslice class for each feature type. This time slice class extends from TLcdAIXM51AbstractAIXMTimeSlice.

An AIXM 5.1 feature can either be stand-alone, or contained inside a message. A message consists of one ore more features, and is represented by the class TLcdAIXM51AbstractAIXMMessage. This class implements ILcdModel.

This AIXM 5.1 domain model has been generated based on the AIXM 5.1 XML schema. There is typically one domain class for each type defined in the schema (a detailed explanation of how LuciadLightspeed maps XML schema on java classes can be found in TLcdXMLDataModelBuilder). In the case of AIXM however, the following customizations have been applied to reduce the amount of generated classes:

  • All concrete feature types are mapped on the generic TLcdAIXM51Feature class.
  • Association types (complex types that only define the XLink and gml:owns attributes) are mapped on the generic TLcdAIXM51Association class. In the XML schema, the names of these types typically end with PropertyType. Associations are typically used to create links between different objects using XLink.
  • Link types (complex types that only define the gml:owns attribute and have a single child element) are mapped on the generic TLcdAIXM51Link class. In the XML schema, the names of these types typically end with PropertyType. Links are typically used for feature extensions and when a feature refers to a time slice.
  • Optional types (complex types that only a define a gml:nilreason attribute) are mapped on the generic TLcdAIXM51Optional class. Optional types are typically used for child elements of the time slice type.
  • Property types (complex types that extends from AbstractAIXMPropertyType and define only a single element) are mapped on the generic TLcdAIXM51Property class. The names of property types typically also end with PropertyType.
These optimizations result in a manageable amount of domain classes for the huge AIXM XML schema. Note that the package structure is derived from the AIXM 5.1 UML model.

Association, link, property and optional types are an implementation artifact of the AIXM model. They are introduced either because of XML schema constraints or because of the AIXM temporality model. In the AIXM UML model, these types are not present. For the vast majority of use cases of the AIXM domain objects the additional information present in these types is not relevant. Therefore, the accessors defined on the domain classes typically don't show these types but rather give immediate access to the real content stored in these types. For instance, the accessors for the designator on the TLcdAIXM5AirspaceTimeSlice are of type String and not TLcdAIXM51Optional<String>. Use cases that do need the information contained in the association, link and optional types can use the generic ILcdDataObject API.

Note that most of the documentation on the model classes is directly generated based on the annotations in the AIXM XML schema. Classes of which the corresponding XML type have no such annotations may have little or no documentation.

Since:
10.0