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.
Support is added for the property dfdl:choiceLengthKind="explicit" and
dfdl:choiceLength. Previously, Daffodil ignored the choiceLengthKind
property, always acting as if it had the value of implicit. The property is
now required to be defined in scope for all choices.
A new dfdlx namespace (http://www.ogf.org/dfdl/dfdl-1.0/extensions) was
created to support Daffodil extensions to the DFDL specification. The existing
daf namespace is deprecated and all uses should be switched to dfdlx.
Some properties, such as the layering extension properties are also moved to
this namespace with backwards compatibility supported for now. Extensions
should be considered experimental–support may change or be removed in a
future release.
[DAFFODIL-2096] Add dfdlx extensions namespace prefix. Convert existing extensions to this namespace.
A new DFDL property named dfdlx:emptyElementParsePolicy is added to
control the behavior of empty string and hexBinary elements. This property
allows one to switch between different behaviors for empty elements which
correspond to currently described behavior in the DFDL v1.0 specification
document, and an alternate behavior planned for future inclusion in the DFDL
v1.0 specification which also increase compatibility with IBM DFDL.
Extension: Lookahead Expression Function [Proposal]
A new DFDL expression function named dfdlx:lookAhead() is added to support a
simple way to consider data that occurs at a future point in the bitstream.
Daffodil now does a better job at validating attribute-, short-, and
element-form DFDL properties, which will now result in an error if unknown
properties are used, mostly commonly caused by typos. Additionally, if DFDL
properties are ignored (e.g. dfdl:textPattern is provided when
dfdl:lengthKind is not "pattern"), Daffodil will now provide a warning.
[DAFFODIL-598] No validation of short-form DFDL properties
[DAFFODIL-1619] Warn of when dfdl annotations are ignored
[DAFFODIL-2142] DFDL annotation on complex type is silently ignored
[DAFFODIL-2163] False warning about unused dfdl:choiceBranchKey on direct dispatch array
Deprecation/Compatibility
The following changes have been made which affect compatibility with past releases:
The behavior of separators has been revised to better conform to the DFDL
specification, which enables more DFDL schemas to work without Daffodil
specific modifications. Schemas that relied on the previous non-comformant
behavior may require changes.
The dfdl:choiceLengthKind property must now be defined in scope of all
xs:choice's. Allowed values are either implicit or explicit. The
previous behavior always treated the property as if it had the value of
implicit.
The daf namespace has been deprecated and replaced with the dfdlx
namespace. Some properties were also moved to the new dfdlx namespace.
The following properties/functions should be updated to use the new
namespace, with backwards compatibility supported for now:
dfdl:layerTransform
dfdl:layerEncoding
dfdl:layerLengthKind
dfdl:layerLength
dfdl:layerLengthUnits
dfdl:layerBoundaryMark
daf:parseUnparsePolicy
daf:trace()
daf:error()
DFDL Schema Compatibility
Many changes and bug fixes specifically made to improve compatibility with more
DFDL schemas. With these fixes and features, the schemas
HL7-v2.7,
IBM4690-TLOG, and
EDIFACT
now work with Daffodil.
[DAFFODIL-784] Update default properties in examples to have missing required properties for portability.
[DAFFODIL-828] IBM Compatibility - Test out HL7 schemas