Unsupported Features and Errata

Unsupported features of the DFDL Specification as of Daffodil 3.9.0 are listed below.

Note that this doesn't include just plain bugs in Daffodil, any of which could affect support for a feature, but rather the below is a list of features that there has been no intention to support as of this release.

DFDL Features

  • Intersect and except operators [DAFFODIL-2379]
  • defaulting of values for required elements - when unparsing [DAFFODIL-115]
  • validation (when unparsing) [DAFFODIL-1582]
  • byte-value entities (aka raw-byte entities)[DAFFODIL-258]
  • nested prefix lengths [DAFFODIL-2030]
  • XPath query-style expressions [DAFFODIL-1118]
  • "type" component of DFDL infoset [DAFFODIL-182]
  • "unionMemberSchema" component of DFDL infoset [DAFFODIL-1633]
  • "valid" component of DFDL infoset [DAFFODIL-813]
  • extended ICU symbol 'I' in calendarPattern [DAFFODIL-1462]
  • floating elements in sequences [DAFFODIL-643]
  • "form" attribute (note that "elementFormDefault" is supported) [DAFFODIL-2416]
  • unicodeByteOrderMark (Note this has been removed from the DFDL Specification v1.0)
  • bi-directional text (Note this has been removed from the DFDL Specification v1.0, but may return in a future version of the DFDL spec.)
  • dfdl:contentLength() and dfdl:valueLength() with 'characters' units and variable-width encodings [DAFFODIL-1516]
  • dfdl:outputValueCalc calling dfdl:valueLength() for string with dfdl:truncateSpecifiedLengthString 'yes' [DAFFODIL-1598]

XML Schema Features

Properties and Property Enumerations

XPath Features

  • Arbitrary precision for numeric operations (+, -, *, div, idiv, mod) is only used in specific cases. This can potentially lead to loss of precision or overflow/underflow. The rules for promoting operands are as follows:
    • If both operands are xs:long, xs:unsignedInt, or a subtype, both operands are promoted to xs:long
    • If one operand is xs:float or xs:double and the other is xs:float, xs:double, xs:long, xs:unsignedLong, or a subtype, the operands are promoted to xs:double
    • If one operand is xs:integer or xs:nonNegativeInteger, and the other is xs:integer or a subtype, both operands are promoted to xs:integer.
    • Otherwise, both operands are promoted to xs:decimal

The above listings are derived from this DFDL Language New Features JIRA Report .