Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: superseded by OGF official document

This documentation is superseded by an official Open Grid Forum DFDL Work group Experience Document defined here: Experimental Feature: emptyElementParsePolicy

The implementation in Daffodil differs from that documentation in the name of one of the enum values for the new property. Daffodil is using 'treatAsMissing' as an enum value where the official document describes 'treatAsAbsent'.

Compatibility and interoperability between two different implementations is required for success of the DFDL standard.

The IBM DFDL implementation in their AppConnect product has a behavior for empty elements that is not in compliance with the DFDL v1.0 draft standard as of the Sept 2014 draft. This may be corrected/amended as the final draft is prepared. To provide interoperability in the mean time, a compatibility switch has been created.

This feature is implemented in the Daffodil 2.4.0 development branch / release. However, the property name, and the name of the property values are subject to change.

...

Enum

Valid values are "treatAsMissing" or "treatAsEmpty"

This property describes the behavior of the DFDL processor for empty elements of type xs:string or xs:hexBinary.

When 'treatAsEmpty' an empty string/hexBinary that conforms to the dfdl:emptyValueDelimiterPolicy and which is required, the representation is understood to be empty, and it will be substituted with a default value (if defined). If no default value is defined the representation is understood to be normal, and the value will be an empty string, or zero-length xs:hexBinary. If the element occurrence is optional, nothing is added to the infoset.  If the empty string/hexBinary does not conform to the emptyValueDelimiterPolicy, then if the element occurrence is required, no defaulting is performed, the representation is understood to be normal, and an empty string or zero-length hexBinary is added to the infoset. If the element occurrence is optional, then if the representation is zero-length the representation is understood to be absent, and, nothing is added to the infoset. However, if the representation is non-zero-length, the representation is understood to be normal, and an empty string or zero-length hexBinary is added to the infoset.

...