Data Format Description Language (DFDL) v1.0 Specification
OGF Proposed Recommendation GFD-P-R.174, January 31, 2011


14.4 Floating Elements

Elements within an ordered sequence can be designated as floating which means that they can appear in any position within the sequence.1

Property Name

Description

floating

Enum

Valid values are 'yes', 'no'

Whether the occurrences of an element in an ordered sequence can appear out-of-order in the representation.

When parsing, and dfdl:floating is 'yes', instances of the element may be encountered in the representation in any position within its containing sequence. If present they are placed into the infoset in schema declaration order. If the element repeats, instances do not need to be contiguous in the representation.

When parsing, and dfdl:floating is 'no', instances of the element must be in schema declaration order, and, if present, they are placed into the infoset in schema declaration order. It is a processing error if instances of the element are not encountered in schema declaration order.

When unparsing, instances of the element are expected in the infoset in schema declaration order, and are output in the representation in schema declaration order. It is a processing error if instances of the element are not encountered in schema declaration order,

It is a schema definition error if an unordered sequence or a choice contains any element with dfdl:floating='yes'.

It is a schema definition error if an ordered sequence contains any element with dfdl:floating='yes' and also contains non-element component (such as a choice or sequence model group).

Annotation: dfdl:element

An ordered sequence with floating components is similar to an unordered sequence except only the floating elements may be out of order.

An ordered sequence of n element children with either n or n-1 of those children with dfdl:floating='yes' is equivalent to an unordered sequence with the same n element children with dfdl:floating='no'.

A complex element with dfdl:floating='yes' can have as its content model a sequence with elements that also have dfdl:floating='yes'.

This makes every element in a sequence containing one or more floating elements a point of uncertainty, similar to the way every element in an unordered sequence is a point of uncertainty.

A parser MUST look for the element defined at that position in the schema first and then look for the floating elements in the order they are defined in the schema.

1 The NTE segment in the X12 EDI standard is an example of a floating element.

Copyright (C) Open Grid Forum (2005-2010). All Rights Reserved.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the OGF or other organizations, except as needed for the purpose of developing Grid Recommendations in which case the procedures for copyrights defined in the OGF Document process must be followed, or as required to translate it into languages other than English.