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.
Create the file /etc/yum.repos.d/apache-daffodil.repo with the following content:
Run the folllowing command:
Release Notes
Code Generation Backend
A new code generation backend, called daffodil-runtime2, is added
supporting generating C code with limited parse and unparse
capabilities. See the Command Line Interface page for commands
and options to generate code. Visit DaffodilC
ToDos for a list of limitations
and planned future work.
[DAFFODIL-2505] README says Mini-XML 3.2 is required, but everything seems to work with 3.1
[DAFFODIL-2507] Unable to build/stage daffodil-cli with gcc version 4.8.2 on CentOS 7
[DAFFODIL-2508] Missing LICENSE and NOTICE files in daffodil-runtime2
Pluggable Validation
A new capability allowing pluggable infoset validation mechanisms is added. A
Schematron validator is now available, which allows for validating the infoset
against Schematron rules, either external or embedded in the DFDL schema. The
CLI --validate option now allows for specifying a pluggable validator, in
addition to the off/limited/full options. A new
DataProcessor.withValidator() function is added to specify a new validator
via the Java/Scala API.
[DAFFODIL-1685] Full validation should create and initialize the validator before parsing/unparsing begins
[DAFFODIL-2482] Output SVRL from Schematron Validator
DFDL Variables
Multiple bugs have been fixed to improve conformance with the DFDL
specification related to DFDL newVariableInstance and setVariable
properties, primarily related to defaults and external values. A new
dfdlx:direction extension property is also added to specify that certain
variables should only be evaluated during parse, unparse, or both.
[DAFFODIL-1520] Unset variables referenced from dfdl:outputValueCalc expression should block/delay until they get a value.
[DAFFODIL-2352] dfdl:newVariableInstance with non-constant defaultValue fails
[DAFFODIL-2385] newVariableInstance has issues with suspensions during unparse
[DAFFODIL-2429] newVariableInstance and setVariable require 'direction' property
[DAFFODIL-2481] newVariableInstance does not use external values when defaultValue is not defined
SAX Updates
The SAX API has been updated, including improved conformance with SAX API
namespace/prefix properties and improved unparse performance.
[DAFFODIL-2422] Implement allowed features for DaffodilXMLReader/DaffodilOutputContentHandler
A number of issues remain open that have been marked as critical, and are
expected to be fixed in the next release. These issues are:
[DAFFODIL-1422] disallow doctype decls in all XML & XSD that we read in
[DAFFODIL-2400] New SAX API causes performance degradations
[DAFFODIL-2512] Unordered sequences with initiated content or discriminators does not parse correctly
Deprecation/Compatibility
The use of the ParseResult.isAtEnd() function has been deprecated, because it
can cause unexpected blocking in some cases. Instead, the final bit position
should be accessed via the ParseResult.bitPos1b() function, and the result
compared with the expected data length. Alternatively, a new
InputSourceDataInputStream.hasData() function is added, which blocks until at
least 1 byte of data is available to parse, or end-of-file is reached.
[DAFFODIL-2502] Parse must behave properly for reading data from TCP sockets
Dependency Changes
The following dependencies have been added or updated