© 2008 The MITRE Corporation. All rights reserved. Developing an Open Source AIXM5 Java Library (AIXM-J) Steven Chase Lead Software Engineer MITRE/CAASD.

Slides:



Advertisements
Similar presentations
J0 1 Marco Ronchetti - Web architectures – Laurea Specialistica in Informatica – Università di Trento Java XML parsing.
Advertisements

The Java Platform and XML Portable Code, Portable Data James Duncan Davidson Staff Engineer, Sun Microsystems, Inc.
Airport GIS and Special Activity Airspace (Military)
1/7 ITApplications XML Module Session 8: Introduction to Programming with XML.
1 caAdapter Jan 24, caAdapter The caAdapter is an open source tool that facilitates HL7 version 3 message building, parsing and validation based.
XML & Data Structures for the Internet Yingcai Xiao.
The European Organisation for the Safety of Air Navigation Digital NOTAM Concept AIXM XML Developers’ Seminar #5 23 March 2010.
1 XML: Advanced Guide Holly A. Hyland, FSA Andrew Smalera, XML Framework Session 14.
JAXB Java Architecture for XML Binding Andy Fanton Khalid AlBayat.
XML Parsing Using Java APIs AIP Independence project Fall 2010.
SAX A parser for XML Documents. XML Parsers What is an XML parser? –Software that reads and parses XML –Passes data to the invoking application –The application.
SaxStore: a n aspect oriented persistence library for Java based on SAX events Riccardo Solmi University of Bologna May 2001.
Xerces The Apache XML Project Yvonne Yao. Introduction Set of libraries that provides functionalities to parse XML documents Set of libraries that provides.
Implementation of One Stop Search by XSLT By Dave Low University of Hong Kong 9-Dec-2003.
29-Jun-15 JAXB Java Architecture for XML Binding.
JAXB Java Architecture for XML Bindings. What is JAXB? JAXB defines the behavior of a standard set of tools and interfaces that automatically generate.
Henry Felices Hershey PA March 5, 2009 Federal Aviation Administration Overview of the Airport Safety Data Program.
TARGETS Enabling NextGen With Advanced Procedure Design Software October 22, 2013.
MC 365 – Software Engineering Presented by: John Ristuccia Shawn Posts Ndi Sampson XSLT Introduction BCi.
Technical Track Session XML Techie Tools Tim Bornholt.
Chapter 13 XML Concept of XML Simple Example of XML XML vs. HTML in Syntax XML Structure DTD and CDATA Sections Concept of SAX Processing Download and.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
Introduction to AIXM. Topics Criticality of AIS information AIM – a “data centric” approach Worldwide interoperability AIXM mission Related developments.
Presented to: Federal Architects By: Kim W. Barnette, Ph.D. Aeronautical Information Management Federal Aviation Administration Date: April 11, 2007 Federal.
PHP and XML TP2653 Advance Web Programming. PHP and XML PHP5 – XML-based extensions, library and functionalities (current XAMPP PHP version is )
AIXM Viewer Implementation Presentation to AIXM Users’ Conference, Federal Aviation Administration, Washington D.C., Feb 27-March 1, By: Mark Austin,
XML Fundementals XML vs.. HTML XML vs.. HTML XML Document (elements vs. attributes) XML Document (elements vs. attributes) XML and RDBMS XML and RDBMS.
1 XML at a neighborhood university near you Innovation 2005 September 16, 2005 Kwok-Bun Yue University of Houston-Clear Lake.
XML for E-commerce III Helena Ahonen-Myka. In this part... n Transforming XML n Traversing XML n Web publishing frameworks.
XML and its applications: 4. Processing XML using PHP.
XML eXtensible Markup Language w3c standard Why? Store and transport data Easy data exchange Create more languages WSDL (Web Service Description Language)
Java API for XML Processing (JAXP) توسط : محمّدمهدي حامد استاد راهنما : دكتر مسعود رهگذر.
XML Transformations Eugenia Fernandez IUPUI. Stylesheet Technologies Browser-based Presentation HTML Cascading Stylesheets Programming-based Transformation.
3/29/2001 O'Reilly Java Java API for XML Processing 1.1 What’s New Edwin Goei Engineer, Sun Microsystems.
AIXM Users’ Conference, March Implementing AIXM in Instrument Flight Procedures Automation Presenter: Iain Hammond MacDonald, Dettwiler &
XML Parsers Overview  Types of parsers  Using XML parsers  SAX  DOM  DOM versus SAX  Products  Conclusion.
SAX. What is SAX SAX 1.0 was released on May 11, SAX is a common, event-based API for parsing XML documents Primarily a Java API but there implementations.
XSLT Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
March 28, 2001XSP Session O’Reilly Enterprise Java Conference 1 XSP Session Sue Spielman President/Consulting Engineer President/Consulting Engineer
McGraw-Hill/Irwin © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. Scripting with the DOM Ellen Pearlman Eileen Mullin Programming the Web.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
Sheet 1XML Technology in E-Commerce 2001Lecture 3 XML Technology in E-Commerce Lecture 3 DOM and SAX.
Accessing Data Using XML CHAPTER NINE Matakuliah: T0063 – Pemrograman Visual Tahun: 2009.
1 1 Aeronautical Information Services Brief to AIXM User Group 27 February 2007.
An Introduction to XML Paul Donohue May 8th 2002 Hotel Senator Zürich.
Web Services with Apache CXF Part 2: JAXB and WSDL to Java Robert Thornton.
CS 157B: Database Management Systems II February 11 Class Meeting Department of Computer Science San Jose State University Spring 2013 Instructor: Ron.
XML eXtensible Markup Language. XML A method of defining a format for exchanging documents and data. –Allows one to define a dialect of XML –A library.
COSC617 Project XML Tools Mark Liu Sanjay Srivastava Junping Zhang.
Challenges in handling XML: performance and memory usage Sami Poikonen Republica oy.
SIMO Python/XML Simulator Current situation 28/10/2005 SIMO Seminar Antti Mäkinen Dept. of Forest Resource Management / University of Helsinki.
Dom and XSLT Dom – document object model DOM – collection of nodes in a tree.
What is XML? eXtensible Markup Language eXtensible Markup Language A subset of SGML (Standard Generalized Markup Language) A subset of SGML (Standard Generalized.
1 Introduction JAXP. Objectives  XML Parser  Parsing and Parsers  JAXP interfaces  Workshops 2.
Martin Kruliš by Martin Kruliš (v1.1)1.
©2001 Priority Technologies, Inc. All Rights Reserved Meteor Status Miami Face to Face Meeting January 16 – 18, 2002.
Visualization of Aeronautical Information Presentation to AIXM Users’ Conference, Federal Aviation Administration, Washington D.C., Feb 27-March 1, 2007.
CHAPTER NINE Accessing Data Using XML. McGraw Hill/Irwin ©2002 by The McGraw-Hill Companies, Inc. All rights reserved Introduction The eXtensible.
Java High level programming language ◦ Sun Microsystems ◦ ORACLE acquired Java Development Kit – JDK Java Runtime Environment – JRE Java Virtual Machine.
Java API for XML Processing
I Copyright © 2004, Oracle. All rights reserved. Introduction.
Slice & dice the Web with XmlPL, The XML Processing Language A presentation for Boise Code Camp 2007 Joseph Coffland Cauldron Development LLC.
Using XML Tools CS551 – Fall 2001.
XML in Web Technologies
FAA Federal NOTAM System (FNS)
More Sample XML By Sadia Anjum.
AIXM 5 Development Status
A parser for XML Documents
XML and its applications: 4. Processing XML using PHP
XML Parsers.
Presentation transcript:

© 2008 The MITRE Corporation. All rights reserved. Developing an Open Source AIXM5 Java Library (AIXM-J) Steven Chase Lead Software Engineer MITRE/CAASD March 19, 2008

© 2008 The MITRE Corporation. All rights reserved. 2 Overview Background –Tools –Data sources Open source project –Goals –Technology –Challenges –Status –Using the library Demo

© 2008 The MITRE Corporation. All rights reserved. 3 MITRE/CAASD Background The MITRE Corporation –Private, independent, not-for-profit organization –Chartered to work in the public interest CAASD –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

© 2008 The MITRE Corporation. All rights reserved. 4 CAASD Developed Tools Procedure design, flyability, simulation, visualization ILS approach/airport safety analysis, CRM Safety Assessment Toolset TARGETS

© 2008 The MITRE Corporation. All rights reserved. 5 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)

© 2008 The MITRE Corporation. All rights reserved. 6 Goals 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

© 2008 The MITRE Corporation. All rights reserved. 7 Technology 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

© 2008 The MITRE Corporation. All rights reserved. 8 Challenges Understanding the model Model is still changing Sample XML is limited Implementing GML

© 2008 The MITRE Corporation. All rights reserved. 9 Status Features –AirportHeliport –Runway –Navaid –Designated Point –Vertical Structure –STAR/SID –Basic Message –GML Point and ValidTime TEST OBSTACLE POLE COMPLETED STEEL RED BLACK YES NO EGM Sample XML – Vertical Structure

© 2008 The MITRE Corporation. All rights reserved. 10 Status (ctd) Includes sample programs that read/write AIXM5 –XML has not been validated Uses GNU General Public License (GPL) Hosted on Sourceforge –

© 2008 The MITRE Corporation. All rights reserved. 11 Using the Library Add aixm-j, dom4j, jaxen jar files to classpath Your Application Aviation Objects Convert to AIXM-J Objects AIXM-J Library Objects AIXM5 XML dom4j Generating AIXM5 XML

Demo Document Number Here © 2008 The MITRE Corporation. All rights reserved. 12

© 2008 The MITRE Corporation. All rights reserved. 13

© 2008 The MITRE Corporation. All rights reserved. 14 Sample Code/Notes © 2008 The MITRE Corporation. All rights reserved. 14

© 2008 The MITRE Corporation. All rights reserved. 15 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 timeSlice.setGmlId(String.valueOf(airport.getUniqueKey())); // set designator timeSlice.setDesignator(airport.getAirportId()); // set elevation AixmVerticalDistanceValue fieldElevation = new AixmVerticalDistanceValue(airport.getElevation(), AixmUomDistanceVerticalType.FT); timeSlice.setFieldElevation(fieldElevation); // set rest of fields here… // add the timeSlice to AirportHeliport ah.addTimeSlice(timeSlice); // return the AixmFeature object return ah; }

© 2008 The MITRE Corporation. All rights reserved. 16 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 document.setRootElement(element); // 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); writer.write(document); writer.flush(); } catch (Exception ex) { ex.printStackTrace(); }

© 2008 The MITRE Corporation. All rights reserved. 17 Generated XML KIAD WASHINGTON DULLES INTL K6KIAD AD NO WASHINGTON …

© 2008 The MITRE Corporation. All rights reserved. 18 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 AixmFeature(AixmFeatureType.Navaid).parseElements(navaidElement); // Do something with the data here, in this example we just print the object System.out.println("navaid : " + navaid); // Free up memory navaidElement.detach(); } public void onStart(ElementPath path) {/* do nothing */} } ); // Read the XML file saxReader.read(br);

© 2008 The MITRE Corporation. All rights reserved. 19 Notes 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

© 2008 The MITRE Corporation. All rights reserved. 20 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