Apache Daffodil 2.3.0


Javadoc | Scaladoc

Get Release



The above release files should be verified using the PGP signatures and the project release KEYS. See verification instructions for a description of using the PGP and KEYS files for verification. A SHA512 checksum is also provided as an alternative verification method.

libraryDependencies += "org.apache.daffodil" %% "daffodil-sapi" % "2.3.0"
Create the file /etc/yum.repos.d/apache-daffodil.repo with the following content:
name=Apache Daffodil
Run the folllowing command:
sudo dnf install apache-daffodil

Release Notes

TDML Runner Cross Validation

It is now possible to use the TDML runner with tests with different DFDL implementations, including the IBM DFDL implementation. DFDL implementations must create a class named TDMLDFDLProcessorFactory and implement the abstract functions. A new implementation attribute is added to the tdml:parserTestCase and tdml:unparserTestCase elements to define which tests an implementation is known to work with.

New in the TDML runner is type-aware infoset comparisons. One can now provide an xsi:type attribute in infoset elements, allowing the TDML runner to determine if two elements are logically the same even if there infoset values may differ.

Prefixed Length Kind

Support is added for dfdl:lengthKind="prefixed" and the properties dfdl:prefixIncludesPrefixLength and dfdl:prefixLengthType.


The following changes have been made which affect compatibility with past releases:

Infoset elements with type xs:dateTime and xs:time no longer contain milliseconds precision if the milliseconds value is 0.

Previous versions of Daffodil automatically coerced the result of a DFDL expression to the expected type if they differed. This is incorrect behavior according to the DFDL specification, and now results in a warning when such coercion is required. Instead, expressions must explicitly cast the result type to the expected type. This auto-coercion + warning behavior is deprecated and will change to a schema definition error in a future release.

Elements with a type of xs:hexBinary now ignore the dfdl:byteOrder property and always parse data as if it were bigEndian. The result is that hexBinary bytes where dfdl:byteOrder="littleEndian" now appear reversed when compared to previous releases.

Official support for Java 7 has been removed.

IBM DFDL Compatibility

Other changes and bug fixes specifically made to improve IBM DFDL compatibility:

Improved Windows Support

Tests are updated to be compatible with Windows. A new MSI installer is now made available for releases.

Miscellaneous Changes and Bug Fixes

Infrastructure and Website