NIEM Java Binding Tool Released for Implementation Development
NIEM is excited to announce the beta1 version of the new open source Java Binding Tool. It has been released for public review and comment! Visit the tool’s GitHub repository to access the functionality and provide your input. Community feedback will help inform the next release.
What is the Java Binding Tool?
The Java Binding Tool is an open source GitHub repository, or library of functions that uses Java Architecture for XML Binding (JAXB) to implement NIEM-based information exchanges.
What can the Java Binding Tool do?
The functions available within the Java Binding Tool can generate consistent bindings to Java objects for NIEM schema subsets and extension schema documents. Because the binding generation is part of the build process, this tool has the potential to facilitate and simplify ongoing development by automatically generating bindings when an Information Exchange Package Documentation (IEPD) is updated.
The tool contains example Representational State Transfer (REST) services with Extensible Markup Language (XML), and has the capability to:
- Generate binding configuration files based on an IEPD.
- Generate the Java binding classes at compile time for NIEM schema documents and package into a reusable jar.
- Accommodate updates to an IEPD by using unit testing in the project.
- Run sample tests of bindings that generate random data for the IEPD, and verify correctness of the exchange implementation.
Who should use the Java Binding Tool?
The library of functions that make up the tool may be useful to developers and/or programmers implementing NIEM-based exchanges. Please note the Java Binding Tool does not have a user interface, and that its use requires programming skills related to Java and web services. This library best serves those programmers who have only a familiarity with JAXB—it can save them time from having to learn to configure JAXB for correctly generating objects from NIEM schema document sets.
Are there any special considerations?
Currently, the tool has a few known limitations. Namely, the tool does not work correctly with Geography Markup Language (GML), while other limitations are minor. Although the tool correctly handles Java object generation for structures.xsd, it is unable to generate random sample test cases that contain logically correct use of structures:ref and structures:id. So, for example, within randomly generated sample instance XML documents (used for testing), a Vehicle ref may point to the id for a Person. Randomly generated augmentation points generate similar results. We will be working on these and any other reported/identified issues over the coming months.
There is no formal release schedule for this tool. We will be updating the repository directly in GitHub as bugs are fixed, improvements are applied, and associated documentation is adjusted. GitHub tracks these changes automatically within the repository.
NIEM wants input from the field on Java utilization, but we also want your input on whether this would be a useful mechanism to implement bindings for other languages. We welcome your feedback on what the community would like to see in future releases!
Where can I access the Java Binding Tool?
Visit the GitHub repository to access the tool and instructions for using it. You can also identify issues you may encounter, ask questions, or provide feedback on the beta1 version through the GitHub issues tracker.
General questions not specific to this tool? Connect with us!