Recent News

12/01/2011: v2.0.0 released, adding support for DDMS 4.0.1.
10/20/2011: I gave a briefing on DDMSence at the DoD Metadata Working Group Meeting on October 20 in Columbia, MD.
09/25/2011: Development on v2.0.0 is complete! v2.0.0 will support DDMS 4.0.1, and will be released once the "Public Release" versions of IC-ISM and IC-NTK are available to be bundled with DDMSence.
07/17/2011: v1.11.0 released, adding support for XSLT2-based Schematron validation.
07/05/2011: v1.10.0 released, adding support for DDMS 3.1.
06/06/2011: Schematron Implementation for DDMS published.
06/02/2011: v1.9.1 released. Example code for DDMS Validator and DDMS Builder posted.
05/24/2011: v1.9.0 released.
05/13/2011: v1.8.0 released, introducing the Component Builder framework.
03/10/2011: v1.7.2 released.
11/26/2010: Relational Database Model for DDMS published.
11/16/2010: v1.7.1 released.
09/18/2010: v1.7.0 released.
09/07/2010: v1.6.0 released.
09/01/2010: DDMS validator released.
07/07/2010: v1.5.1 released.
07/05/2010: v1.5.0 released.
06/08/2010: v1.4.0 released.
05/14/2010: v1.3.2 released.
05/11/2010: Added table of supported XSLT Engines to Schematron Validation Power Tip.
05/09/2010: v1.3.1 released.
05/07/2010: v1.3.0 released.
04/24/2010: v1.2.1 released.
04/21/2010: v1.2.0 released.
04/08/2010: v1.1.0 released.
04/01/2010: v1.0.0 released. DDMSence information posted on the DoD Metadata Registry Community Forum and on freshmeat.


New Release Feed:
SVN Code Feed:
Issue Tracker Feed:

DDMSence v2.0.0

DDMSence (pronounced "dee-dee-em-Essence") is an open source Java API which supports the DoD Discovery Metadata Specification (DDMS). It transforms XML DDMS Resource records into a Java object model (using XOM and Xerces), allowing them to be manipulated or traversed within the context of a Java environment.

  • Provides a complete implementation of the DDMS specification (including the Extensible Layer) using DDMS 2.0, 3.0, 3.1, or 4.0.1.
  • Java object model can be created from existing XML files, or built up from scratch with basic Java data types. Components automatically transform into valid, well-formed XML, HTML, and Text records.
  • Validates resources against the complete specification, not just the schemas. Integrated with the Controlled Vocabulary Enumerations for ISM attributes, as defined by the Intelligence Community, and supports Schematron-based custom validation rules.
  • Three sample applications and accompanying tutorials provide an introduction to the library, and Power Tips are available for more experienced users.

Suggested Use Cases

  • Reading existing DDMS resources, possibly as part of a query or search service
  • Creating new DDMS resources from scratch, possibly as part of a web-based wizard
  • Editing existing DDMS resources
  • Transforming older DDMS resources to the latest version of DDMS
  • Applying custom Community of Interest (COI) constraints to a DDMS resource with Schematron

DDMSence comes with a complete set of JUnit tests, and is being released under the GNU Lesser General Public License (LGPL).

About the Author

Brian Uri! is a Technical Lead at FGM, Inc. in Reston, Virginia. He has been involved in the development and support of the DoD Metadata Registry and other enterprise services since the inception of the Net-Centric Enterprise Services (NCES) program in 2005. He currently supports the Defense Information Systems Agency (DISA) in its role as the Technical Agent for Universal Core (UCore). DDMSence was conceived in January 2010 and grew out of Brian's desire to gain more practical XML Schema experience, to write something useful which had never been done before, and an unusually large amount of free time.