Developing an open source aixm5 java library aixm j
1 / 20

Developing an Open Source AIXM5 Java Library (AIXM-J) - PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

Developing an Open Source AIXM5 Java Library (AIXM-J). Steven Chase Lead Software Engineer MITRE/CAASD March 19, 2008. Overview. Background Tools Data sources Open source project Goals Technology Challenges Status Using the library Demo. MITRE/CAASD Background.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

Download Presentation

Developing an Open Source AIXM5 Java Library (AIXM-J)

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Developing an Open Source AIXM5 Java Library(AIXM-J)

Steven Chase

Lead Software Engineer


March 19, 2008


  • Background

    • Tools

    • Data sources

  • Open source project

    • Goals

    • Technology

    • Challenges

    • Status

    • Using the library

  • Demo

MITRE/CAASD Background

  • The MITRE Corporation

    • Private, independent, not-for-profit organization

    • Chartered to work in the public interest


    • Federally Funded Research & Development Center (FFRDC) operated by MITRE

    • Provides systems research and development for the Federal Aviation Administration (FAA) and international civil aviation authorities

Procedure design, flyability, simulation, visualization

ILS approach/airport safety analysis, CRM

CAASD Developed Tools

Safety Assessment Toolset


Data Sources

  • National Flight Data Center (NFDC/NASR)

  • AVN Information Services (AVNIS)

  • Jeppesen

  • National Aeronautical Charting Office (NACO)

  • Digital Aeronautical Flight Information File (DAFIF)

  • Digital Obstacle File (DOF)

  • Elevation Data (DEM, DTED, etc)


  • Develop AIXM5 Java library that is:

    • Independent

    • Easy to use

    • Well documented

    • Extensible

    • AIXM5 compliant

  • Enable applications to read/write AIXM5 data

  • Handle large data sets


  • Sun JDK (5 or greater)

    • Enum, generics, enhanced for loop, etc.

  • Dom4j

    • Library for using XML, XPath (jaxen) and XSLT

    • Full support for DOM, SAX and JAXP

    • Easy, fast, open source

  • Why not use JAXB or XMLBeans?

    • In early versions, not all AIXM5 schema elements and attributes were supported

    • Auto-generated code may be hard to work with

    • Other attempts have been made


  • Understanding the model

  • Model is still changing

  • Sample XML is limited

  • Implementing GML


  • Features

    • AirportHeliport

    • Runway

    • Navaid

    • Designated Point

    • Vertical Structure

    • STAR/SID

    • Basic Message

    • GML Point and ValidTime

<aixm:VerticalStructure xmlns:aixm="" gml:id="19608436">


<aixm:VerticalStructureTimeSlice gml:id="26795951">

<aixm:name>TEST OBSTACLE</aixm:name>










<aixm:VerticalStructurePart gml:id="25276323">

<aixm:verticalExtent uom="FT">500.0</aixm:verticalExtent>

<aixm:verticalExtentAccuracy uom="FT">10.0</aixm:verticalExtentAccuracy>


<aixm:ElevatedPoint gml:id="20051738">

<gml:pos>70.0 -122.0</gml:pos>

<aixm:elevation uom="FT">1500.0</aixm:elevation>

<aixm:geoidUndulation uom="M">212.0</aixm:geoidUndulation>


<aixm:horizontalAccuracy uom="M">15.0</aixm:horizontalAccuracy>

<aixm:verticalAccuracy uom="M">10.0</aixm:verticalAccuracy>








Sample XML – Vertical Structure

Status (ctd)

  • Includes sample programs that read/write AIXM5

    • XML has not been validated

  • Uses GNU General Public License (GPL)

  • Hosted on Sourceforge


Using the Library

  • Add aixm-j, dom4j, jaxen jar files to classpath

AIXM-J Library







Convert to

AIXM-J Objects


Generating AIXM5 XML


© 2008 The MITRE Corporation. All rights reserved.


Document Number Here

Sample Code/Notes

© 2008 The MITRE Corporation. All rights reserved.


Sample Conversion Method

// Takes an Airport object and returns an AixmFeature object

public static AixmFeature createAixmAirport(Airport airport) {

// create an AixmFeature object

AixmFeature ah = new AixmFeature(AixmFeatureType.AirportHeliport);

// create an AixmAirportHeliportTimeSlice

AixmAirportHeliportTimeSlice timeSlice = new AixmAirportHeliportTimeSlice();

// set gmlId


// set designator


// set elevation

AixmVerticalDistanceValue fieldElevation =

new AixmVerticalDistanceValue(airport.getElevation(),



// set rest of fields here…

// add the timeSlice to AirportHeliport


// return the AixmFeature object

return ah;


Generating AIXM5 XML

// Convert airport to AixmFeature object

AixmFeature aixmAirport = AixmAirportUtil.createAixmAirport(airport);

// Create dom4j Document

Document document = DocumentHelper.createDocument();

// Create the root Element

QName qname = QName.get(“AirportHeliport”, AixmConstants.AIXM_NAMESPACE);

Element rootElement = DocumentHelper.createElement(qname);

// Set the root Element, XPath won’t work until you do this


// Call AIXM-J method to add dom4j Elements to represent the airport

aixmAirport.addElements(rootElement, document);

// Pretty print the document

OutputFormat formatter = OutputFormat.createPrettyPrint();

try {

XMLWriter writer = new XMLWriter(System.out, formatter);




catch (Exception ex) {



Generated XML

<?xml version="1.0" encoding="UTF-8"?>

<aixm:AirportHeliport xmlns:aixm="" xmlns:gml="" xmlns:xlink="" gml:id="org.mitre.caasd.aixm.feature.airportheliport.airportheliport.AixmAirportHeliport6468511">


<aixm:AirportHeliportTimeSlice gml:id="1576249658">


<aixm:name>WASHINGTON DULLES INTL</aixm:name>




<aixm:elevation uom="FT">313.0</aixm:elevation>


<aixm:City gml:id="">







<aixm:ElevatedPoint xmlns:aixm="" gml:id="23811352">

<gml:pos>38.94453194444444 -77.45580972222223</gml:pos>

<aixm:elevation uom="FT">313.0</aixm:elevation>



Parsing an AIXM5 ILS File

// Open the file, create a BufferedReader and SAXReader

FileInputStream is = new FileInputStream(new File("ILS.aixm.xml"));

BufferedReader br = new BufferedReader(new InputStreamReader(is));

SAXReader saxReader = new SAXReader();

// Add handler for each Navaid tag

saxReader.addHandler("/ils-subscriber-file/Navaid", new ElementHandler() {

public void onEnd(ElementPath path) {

Element navaidElement = path.getCurrent();

// Convert the dom4j Element to an AixmFeature object

AixmFeature navaid = new


// Do something with the data here, in this example we just print the object

System.out.println("navaid : " + navaid);

// Free up memory



public void onStart(ElementPath path) {/* do nothing */}

} );

// Read the XML file;


  • AIXM – Aeronautical Information Exchange Model (AIXM) is designed to enable the management and distribution of Aeronautical Information Services (AIS) data in digital format

  • XMLBeans – XMLBeans is a technology for accessing XML by binding it to Java types

  • JDK – Java Development Kit, includes Java compiler, runtime environment, etc.

  • JAXB – The Java Architecture for XML Binding

  • SAX – Simple API for XML (SAX) is a serial access parser API for XML; event driven; user defines callback methods that are called during parsing

  • DOM – Document Object Model (DOM) is a standard object model for representing XML formats; tree based model

  • JAXP – Java API for XML Processing

  • XPath – Xml Path (XPath) is a language for selecting nodes from an XML document

  • Jaxen – Java XPath Engine (Jaxen) is an open source XPath library for Java

  • Dom4j – dom4j is an easy to use, open source library for working with XML, XPath and XSLT

  • XSLT – Extensible Stylesheet Language Transformations (XSLT) is a language for transforming XML documents into other XML documents

Notes (ctd)

  • CAASD – Center for Advanced Aviation System Development, operated by MITRE

  • TARGETS – Terminal Area Route Generation, Evaluation and Traffic Simulation

  • ILS – Instrument Landing System

  • CRM – Collision Risk Model

  • DEM – Digital Elevation Model

  • DTED – Digital Terrain Elevation Data

  • NASR – National Airspace System Resources

  • Login