Unsupported features

The following features of the DFDL 1.0 specification are currently not supported in this implementation.

Property enumerations

The following property enumerations are unsupported.

Feature Reference in DFDL specification
dfdl:textBiDi "yes" 23. Optional DFDL Features
dfdl:occursCountKind "stopValue" 16. Properties for Array Elements and Optional Elements
dfdl:binaryCalendarRep "packed" 13.13 Properties Specific to Calendar with Binary Representation
dfdl:floating "yes" 14.4 Floating Elements
dfdl:lengthKind "endOfParent" 12.3 Properties for Specifying Lengths
dfdl:assert testKind "pattern" 7.5 The dfdl:assert Statement Annotation Element
dfdl:discriminator testKind "pattern" 7.6 The dfdl:discriminator Statement Annotation Element
dfdl:separatorSuppressionPolicy "trailingEmptyStrict" 14.2 Sequence Groups with Separators
dfdl:encodingErrorPolicy "replace" 11.2 Character Encoding and Decoding Errors
dfdl:textZonedSignStyle "asciiTandemModified" 13.6 Properties Specific to Number with Text representation
dfdl:bitOrder "leastSignificantBitFirst" 11. Properties Common to both Content and Framing
dfdl:escapeCharacterPolicy "delimiters" 13.2.1 The dfdl:escapeScheme Properties

Properties

The following properties are unsupported:

Feature Reference in DFDL specification
dfdl:hiddenGroupRef 14.5 Hidden Groups

dfdl:inputValueCalc
dfdl:outputValueCalc

17. Calculated Value Properties.

Functions

The following functions are unsupported in DFDL expressions:

Feature Reference in DFDL specification
fn:count
fn:exactly-one
18.5 Constructors, Functions and Operators
fn:name
fn:local-name
fn:namespace-uri
dfdl:contentLength
dfdl:valueLength
dfdl:testBit
dfdl:setBits
dfdl:occursIndex
dfdl:checkConstraints
dfdl:timeZoneFromDate
dfdl:timeZoneFromDateTime
dfdl:timeZoneFromTime
All dfdl: constructor functions
dfdl:decodeDFDLentities
dfdl:encodeDFDLentities
dfdl:containsDFDLentities

Annotations

The following annotations and annotation placements are unsupported:

Feature Reference in DFDL specification
dfdl:defineVariable with external=true 7.7.1 The dfdl:defineVariable Annotation Element
dfdl:newVariableInstance 7.7.2 The dfdl:newVariableInstance Statement Annotation Element
dfdl:assert on global element and simple type 7.5 The dfdl:assert Statement Annotation Element
dfdl:discriminator on global element and simple type 7.6 The dfdl:discriminator Statement Annotation Element

Other restrictions

The following restrictions also apply:

Feature Reference in DFDL specification

Use of default values is not supported during parsing.

9.4 Element Defaults

When default values are applied to a missing complex element during serialization and the element is a choice, only the first choice branch is used to supply default values. If an error occurs on the first branch then serialization fails.

9.4 Element Defaults

When dfdl:lengthKind is 'implicit' for a complex element, the element can be prematurely terminated by encountering a higher level terminating delimiter.

12.3.2.1 Non-Delimited Elements within Delimited Constructs

When encoding is 'UTF-8', 'UTF-16' or 'UTF-32' a byte order mark at document start is not automatically processed, and must be modeled explicitly if it is to affect the encoding of the document.

11.1 Unicode Byte Order Marks (BOM)

Schemas must contain only one DFDL xs:appinfo element within each xs:annotation element, as subsequent xs:appinfo elements might not be processed correctly.

6. DFDL Syntax Basics

When dfdl:lengthKind is 'prefixed', the simple type referenced by the dfdl:prefixLengthType property can not also have dfdl:lengthkind 'prefixed'.

12.3.4 dfdl:lengthKind 'prefixed'

Not all instances of inapplicable DFDL property placement are reported.

8.2.2 Optional Checks and Warnings

All global elements are assumed to be potential document roots and are validated accordingly.

8.2.2 Optional Checks and Warnings

dfdl:lengthKind 'pattern' can not be used with elements of binary representation.

12.3.5 dfdl:lengthKind 'pattern'

When parsing, the distinction between an element being 'missing', having an 'empty representation' and having an 'absent representation', is not in accordance with the specification.

9.2 DFDL Data Syntax Grammar

When an element has binary representation, a DFDL character entity is not allowed in the definition of a nil value for the element.

13.15 Nil Value Processing

dfdl:textStandardDecimalSeparator is not allowed to be a list of values.

13.6 Properties Specific to Number with Text representation

dfdl:textStandardExponentRep is not allowed to be more than one character, and not allowed to be empty string.

13.6 Properties Specific to Number with Text representation

The '@' (significant digits) symbol is not allowed in dfdl:textNumberPattern.

13.6 Properties Specific to Number with Text representation

The '_' (underscore) character is not allowed in dfdl:calendarLanguage.

13.11 Properties specific to Calendar with Text or Binary Representation

dfdl:calendarTimeZone is not allowed to be empty string or to be an Olson format time zone.

13.11 Properties specific to Calendar with Text or Binary Representation

A binary packed number with dfdl:lengthUnits 'bits' is not checked to see that the length is a multiple of 4 bits.

12.3.7.2.6 Length of Packed Decimal Calendar Elements

A binary packed number with dfdl:alignmentUnits 'bits' is not checked to see that the alignment is a multiple of 4 bits.

12.1.3 Mandatory Alignment for Packed Decimal Data

All elements with text representation are assumed to align on an 8-bit boundary. There is no support for encodings that are not 8-bit aligned.

12.1.2 Mandatory Alignment for Textual Data

dfdl:textStandardDecimalSeparator, dfdl:textStandardGroupingSeparator, dfdl:textStandardExponentRep, dfdl:textStandardInfinityRep, dfdl:textStandardNanRep and dfdl:textStandardZeroRep are not checked to ensure they are all distinct from one another.

13.6 Properties Specific to Number with Text representation

dfdl:calendarLanguage is not allowed to be an expression.

13.11 Properties specific to Calendar with Text or Binary Representation

dfdl:assert message is not allowed to be an expression.

7.5 The dfdl:assert Statement Annotation Element

dfdl:discriminator message is not allowed to be an expression.

7.6 The dfdl:discriminator Statement Annotation Element

Path locations in DFDL expressions are not correctly validated. Specifically, array elements without predicates and references into other choice branches are not flagged as errors. Avoid using such path locations.

18. Expression language

dfdl:initiator and dfdl:textStandardZeroRep incorrectly allow the use of %WSP*; entity class on its own. Use %WSP+; instead.

12.2 Properties for Specifying Delimiters , 13.6 Properties Specific to Number with Text representation

dfdl:terminator and dfdl:separator incorrectly allow the use of %WSP*; entity class on its own when scanning for delimiters. Use %WSP+; instead when scanning for delimiters.

13.6 Properties Specific to Number with Text representation , 14.2 Sequence Groups with Separators

When serializing, the application of an escape scheme takes place after the application of dfdl:emptyValueDelimiterPolicy.

13.2.1 The dfdl:escapeScheme Properties

A value of empty string for dfdl:binaryBooleanTrueRep is not supported.

13.10 Properties Specific to Boolean with Binary Representation

The fn:concat function is limited to four arguments. 18.5.2.3 String Functions