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.5.0</version>
</dependency>
libraryDependencies += "org.apache.daffodil" %% "daffodil-sapi" % "3.5.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
This release focused primarily on bug fixes. A number of changes resulted in deprecation or backwards incompatible changes. See the Deprecation/Compatibility section for more details.
The GeneralFormatPortable
define format has been removed. Instead,
portable schemas should import a new portable file and reference the
GeneralFormat
format. For example, a schema that previously looked
like this:
<xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormat.dfdl.xsd" />
<dfdl:format ref="GeneralFormatPortable" ... />
Should now look like this:
<xs:include schemaLocation="org/apache/daffodil/xsd/DFDLGeneralFormatPortable.dfdl.xsd" />
<dfdl:format ref="GeneralFormat" ... />
The property textStandardZeroRep
used to be defined to be "0" which
is a mistake. However, existing schemas may be depending on this, or
they may not be depending on this, but simply have tests which have expected
data output containing the value 0.0 with "0" as the text representation.
With this change to dfdl:textStandardZeroRep="" those tests may be broken.
Previous Daffodil releases let schemas define every type's length using "bits" as the length unit even though the specification allows bit length units only for a specific set of types' binary representations and does not allow bit length units for any other type's binary representation or any type's text representation. A deprecation warning is now issued when bit length units are incorrectly used.
Daffodil now uses SLF4J for logging instead of log4j. API users may need to add a new dependency to specify which logging backend to use, for example slf4j-log4j for the previous behavior. If no backend is found, a warning will be output to stderr and log messages will be dropped.
DFDL schema projects that previously added log4j-core (or another log4j implementation) as a dependency to avoid warnings no longer need that dependency–a custom Daffodil specific logger is now used for TDML tests and is automatically pulled in as dependency.
The default and maximum value of the maxHexBinaryLengthInBytes tunable, and thus the maximum length of xs:hexBinary elements, is reduced in half from 2147483647 to 1073741823 bytes. Schemas requiring larger values should switch to the Binary Large Object extension or convert the single large hexBinary element to an array of multiple smaller hexBinary elements.
Daffodil now ensures that binary specified lengths are not larger than the max length of the associated type. For example, xs:int cannot be used if field length is larger than 32 bits. Instead, an xs:long or larger type should be used.
Some package names were modified to support OSGI. Classes in daffodil-tdml-processor, daffodil-japi, and daffodil-sapi jars were unchanged, so those using these APIs should not need changes. However, classes in other packages may need to adjust imports.
The behavior of textNumberCheckPolicy="strict" was changed so that the pattern is used to determine if a decimal point must exist or not. For example, if text numbers are integers without a decimal, the pattern should not contain a decimal. Schema should be modified to either use a lax policy or use a pattern that correctly matches their data.
The following dependencies have been added or updated:
Core
CLI
Code Generator
Schematron Validator
Logging
Changes to Transitive Dependencies
Removed Dependencies