More work to do on this, but no time before the meeting. Let's discuss the rules below, and refine afterwards:

If dfdl:choiceKind='fixedLength' then there must be at least one branch of the choice for which all of the content has a calculable length.

Definition : A DFDL region is a region of the data stream described by the DFDL grammar.
Note : we need to define this term - we use the term 'region' without definition throughout the specification. Sometimes we call it a 'grammar region'.

Definition: A DFDL region has a calculable length if the length of its representation in units of bytes can be calculated from the DFDL description alone.

The leading alignment region has a calculable length if the alignment of the component is the same as the alignment of the parent.
The trailing alignment region has a calculable length if the alignment of the component is the same as the alignment of the parent.
Q: Is this rule necessary?

The initiator region has a calculable length if all of the possible initiator values have a calculable length.
An initiator value is a DFDL string literal. It has a calculable length if the DFDL string literal does not contain any variable-length parts.

The terminator region has a calculable length if all of the possible terminator values have a calculable length.
A terminator value is a DFDL string literal. It has a calculable length if the DFDL string literal does not contain any variable-length parts.

A variable-length part  is any of the following
- a character string in a variable-width encoding
- a DFLD entity in a variable-width encoding
- a DFDL generic entity which can match a variable number of characters ( NL, WSP+, WSP* )

The simple content region has a calculable length if both of the following are true:
- either the encoding is a fixed-width encoding or the representation does not contain characters.
- either lengthKind is 'explicit' and the length is not a DFDL expression or lengthKind is 'implicit' and there is an implicit length for the simple type and its dfdl:representation

The complex content region has a calculable length if all of the following are true:
- either the encoding is a fixed-width encoding or the representation ( recursively ) does not contain characters.
- the element has lengthKind='explicit' and dfdl:length is not a DFDL expression
- all group members, recursively, are required ( minOccurs=maxOccurs )

regards,

Tim Kimber, Common Transformation Team,
Hursley, UK
Internet:  kimbert@uk.ibm.com
Tel. 01962-816742  
Internal tel. 246742






Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU