Daffodil is a library, requiring Java 8, used to convert between fixed format data and XML/JSON based on a DFDL schema. Some examples show the result of Daffodil parsing various inputs into XML. Multiple mechanisms that use the Daffodil library invoke its capabilities are described below.
Linux and Windows command line tool with capabilities include parsing, unaparsing, an interactive debugger, and more. Available via download in binary releases.
Examples for using the Java API are available on the OpenDFDL examples repository. Individual releases describe how to include a dependency to Daffodil via Maven and SBT.
Provides two Apache NiFi processors for parsing and unparsing NiFi FlowFiles.
An extension to XML Calabash that declares XProc pipeline steps to parse and unparse input data.
A Smooks module that has a reader for parsing the source into an event stream and a visitor for unparsing the event stream. This module forms the foundation of the EDI and EDIFACT cartridges.
Many DFDL schemas are freely and publicly available at DFDLSchemas on GitHub. This includes image formats, financial transaction formats, healthcare formats, and more.
DFDL Schemas for US and allied government data formats are available to authorized persons at US DoD Intelink. These formats include: Link16 (aka MIL-STD-6016, STANAG 5516) with JREAP (MIL-STD-3011) and NACT headers, VMF (aka MIL-STD-6017),GMTIF (STANAG 4607 AEDP-7), iCalendar, IMF, USMTF (aka MIL-STD-6040), and OilStock
When creating a custom DFDL schema, it is beneficial to follow the directory/file layout described in Standard DFDL Schema Project Layout. This layout provides a consistent and familiar structure for DFDL schema development that existing tooling understands, provides for easy testing and schema packaging, and ensures no name conflicts on classpaths if multiple schemas are used together.
Any text editor can be used for authoring DFDL schemas. But because DFDL schemas are a subset of XML Schema, using an XML editor (especially an XML Schema aware editor) can provide intelligent assistance in authoring DFDL Schemas, including attribute and tag completion, validation, indentation, visualizations, etc. Below are resources for configuring various tools specifically for editing or authoring DFDL schemas.
Daffodil provides extensions to the DFDL specification to add extra enhancements and capabilities. These extensions are listed at DFDL Extensions.
The Daffodil API and CLI support multiple ways to represent the DFDL infoset, including XML and JSON. See Daffodil and the DFDL Infoset for a description of how the parts of the DFDL infoset are represented.