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. Checksums (SHA256, SHA512) are also provided as alternative verification methods.
Daffodil 2.1.0 is the first release of Daffodil as an Apache incubator project. This release includes relicensing the source to Apache v2, changing the namespace to org.apache.daffodil, and numerous bug fixes and DFDL feature additions to support more DFDL schemas.
This release contains changes which break compatibility with past releases. Please see the deprecation / compatibility notes section for more information.
Added support for binary packed decimal data types. In addition to
dfdl:binaryNumberRep property now also accepts values of
ibm4690Packed to support Binary Coded Decimal, IBM 390
Packed Decimal, and IBM 4690 Packed Decimal, respectively. The
dfdl:binaryDecimalVirtualPoint property applies for the appropriate types.
Also implemented are
dfdl:binaryNumberCheckPolicy to configure the valid nibble values when
Multiple changes were made to support the move to the Apache incubator. This includes changes to the source directory structure, relicensing files to Apache v2, changing the project package to org.apache.daffodil, updating the build infrastructure to SBT 1.x, and adding TravisCI continuous integration support.
Previously, ambiguous path expressions (i.e. path expressions that could potentially reference multiple non-array elements of the same name) were forbidden and caused a schema definition error at schema compilation time. As of 2.1.0, such ambiguities are detected at compile time but are now only considered schema definition warnings. However, if a path expression ever evaluates to more than one non-array element at runtime, it will then be considered an error and cause a runtime schema definition error. This change allows for schemas that appear to have ambiguous path expressions, but in only ever evaluate to a single element in practice.
Changes were made to the TDML runner to support an embedded defaultConfig option and to verify expected schema definition warnings.
The way bitOrder, byteOrder, and encoding consistency was checked required fairly complicated logic at schema compilation time. Not only was this logic difficult to validate, which led to bugs, it also contributed to slow schema compilation times. This complex logic was removed and replaced with an efficient mechanism for runtime validation. This reduced code complexity, fixerd some bugs, and will facilitate future performance optimizations during schema compilation.
The XML infoset output (via the XMLTextInfosetOutputter) now writes an XML
<?xml version="1.0" ... ?> at the beginning of output. It also
ensures output is flushed at the end of writing, which should prevent issues
users reported of receiving only partial data.
As of 2.1.0, the following changes have been made which affect compatibility with past releases:
Package Organization Change
Now that Daffodil is an Apache incubator project, the package organization has been
Developers using the Daffodil Java and Scala API will need to update their
source code and SBT/Maven configurations to use the new organization.
daf XML Namespace Change
The Daffodil extension
daf XML namespace has been modified to represent the
move to Apache, changing from
urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:ext. Backwards compatibility
is maintained for schemas using the old
daf namespace, though it should be
considered deprecated. All future Daffodil extensions will only be supported in
the new namespace, so it is recommended that one update schemas to use the new
Deprecation of built-in-formats.xsd
The built-in-formats.xsd file is a schema that defines a set defaults for a
wide array of DFDL properties. This file was intended for use only during
testing, but was errantly made available for use in real schemas. This was an
oversight, and so use of this schema will now result in a deprecation warning.
Instead, one should import/include
org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd and set the
dfdl:format ref value to
GeneralFormat to get a reasonable set of
default property values or define all necessary properties within a schema.