Recent News

12/15/2013: v2.2.0 released, adding support for DDMS 5.0.
04/10/2013: Statistics about the DDMSence codebase can now be viewed at Ohloh.
04/01/2013: Happy Birthday to DDMSence, celebrating 24 releases in 3 years!
01/19/2013: v2.1.0 released, adding support for DDMS 4.1.
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 in Columbia, MD.
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.

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

DDMSence v2.2.0

DDMSence (pronounced "dee-dee-em-Essence") is the only open-source Java library that fully supports the DoD Discovery Metadata Specification (DDMS). It converts XML DDMS Resources (also called assertions or metacards) into a Java object model, 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 any version of DDMS between 2.0 and 5.0.
  • 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 assertions 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 metacards, possibly as part of a query or search service
  • Creating new DDMS metacards from scratch, possibly as part of a web-based wizard
  • Editing existing DDMS metacards
  • Transforming older DDMS metacards to the latest version of DDMS
  • Applying custom Community of Interest (COI) constraints to a DDMS metacard with Schematron

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

About the Author

Brian Uri! is a Technical Lead at Novetta Solutions in Reston, Virginia. He has been involved with DISA's enterprise services and data strategy efforts (including DDMS, UCore, the Data Services Environment, ESM and SKIWeb) since the inception of the Net-Centric Enterprise Services (NCES) program in 2005.

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.