EAD/ESI/ENA Mapping Packages
The ENA Mapping project, within the EAD Programme, involved the development of three packages:
- Package 1: development of a generic ‘engine’ able to transfer data, based on configuration files in XML, between an Oracle relational database and the AIXM standard format. The mapping is done both ways. The kernel is a Java-to-Java (J2J) transformation that read an XML mapping file describing the transformation of the data.
Most of the classical transformations are pre-defined; specific transformations can be developed in java classes, referenced in the mapping file. Specific java classes based on a XML configuration file model the client database. The AIXM format is XML.
- Package 2: a java converter able to map ARINC 424 files to AIXM format.
- Package 3: a java converter able to split and merge XML documents in AIP format.
One of the tasks, in which the ESI Network Adapter is involved, is data upload to the EAD. This task consists of propagation to the EAD of changes that occur in local databases. Figure 1 shows the design that was developed for this task by Eurocontrol. The first and last step in this design are covered by COTS tools, both from the Castor open source project. They respectively bridge:
the gap between SQL and Java
the gap between Java and XML.
Remains to be done is the conversion between a Java object structure that is close to the structure of the database tables and a Java object structure that is close to the structure needed in the XML messages. This conversion is the purpose of the j2jmapping component.
The j2jmapping component converts bean like Java objects. The data content is contained in the member fields of the Java objects that can be accessed by get- and set-methods. Fields can also be references to other bean like objects. In this way object trees are formed.
The j2jmapping component transforms a set of Java object trees into another set of differently structured Java object trees. For each object tree in the input another object tree is created in the output following the directions specified in the j2jmapping configuration. The correspondence between fields in the input objects and the fields in the output objects can be as simple as a one to one mapping. In this case the transformation is a shuffling of fields. Transformations that only involve shuffling of fields can be done out of the box. No coding is needed by the user.
For more complex transformations some coding by the user can be involved. For example a field in one of the output objects can depend on a combination of several fields of the input objects. The combination operation to be performed has to be implemented by the user in a simple Java class that performs this operation.