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.
<dependency>
<groupId>org.apache.daffodil</groupId>
<artifactId>daffodil-japi_2.12</artifactId>
<version>3.4.0</version>
</dependency>
libraryDependencies += "org.apache.daffodil" %% "daffodil-sapi" % "3.4.0"
/etc/yum.repos.d/apache-daffodil.repo
with the following content:
[apache-daffodil]
name=Apache Daffodil
baseurl=https://apache.jfrog.io/artifactory/daffodil-rpm/
enabled=1
gpgkey=https://downloads.apache.org/daffodil/KEYS
gpgcheck=1
repo_gpgcheck=0
sudo dnf install apache-daffodil
The Daffodil CLI adds two new infoset types–-I exi
and -I exisa
–to
support infosets represented as EXI binary XML for non-schema aware and schema
aware EXI, respectively. EXI infosets are significantly smaller in size than
normal XML infosets, and are often even smaller than the original data format
when made schema aware. The Daffodil CLI has added the
Exificient library to support these infoset
types.
API users can create EXI files by combining the existing SAXInfosetInputter
and SAXInfosetOutputter
classes with the Exificient SAX API or they can use
the Agile Delta EXI SAX API which has been tested with Daffodil as
well. Daffodil has added the new DaffodilXMLEntityResolver
class to its
Java and Scala public APIs to support creating schema aware EXI files too.
Custom character sets can now be added to Daffodil by implementing a custom
BitsCharsetDefinition
class and related functions/classes, listing it in a
META-INF/services
file, packaging it into a jar, and adding it to the
Daffodil classpath.
When using the XMLTextInfosetInputter
and XMLTextInfosetOutputter
classes
in the API, or -I xml
in the CLI, simple string elements with the DFDL
extension attribute dfdlx:runtimeProperties="stringAsXml=true"
are treated as
XML. This means that when parsing, instead of outputting the content as an XML
escaped string, the parsed content is checked to be valid XML and output as if
it were part of the XML infoset. When unparsing, the embedded XML part of the
infoset is converted back to a string. Note that because there are multiple
ways to read and write XML that are syntactically different but semantically
the same, it is possible that parsed or unparsed data may differ from the
original data.
The C code generator backend now supports reading and writing N-bit booleans and integers, where N is an explicit length from 1 to 64 bits. Additional miscellaneous changes include unit test support, fixes to nested choices, tweaks to how float numbers are output, and a command line option to choose the TDML implementation to run TDML tests.
dfdl:assert
's with failureType="recoverableError"
are now reported as
validation errors instead of schema definition warnings [DAFFODIL-2357]
All InfosetInputter
and InfosetOutputter
functions now return Unit
instead of Boolean
. Errors are now expected to be thrown as exceptions
[DAFFODIL-2721]
The following dependencies have been added or updated:
Core
Command Line Interface
Schematron Validator
Test
Changes to Transitive Dependencies