Tim has pointed out that as currently defined it is not possible to define an array where the number of occurrences is determined by the initiator. For example

Scalar1: xxxxx
Array: xxxx
Array: xxxx
Scalar2: xxx

It is inconsistent that dfdl can identify optional elements using speculative parsing but not a variable number of occurrences.

occursCountKind Enum

Specifies how the actual number of occurrences is to be established.

Valid values ‘stopValue’, ‘explicit’, 'implicit'’ or ‘useAvailableSpace’

‘explicit’ means use the value of the dfdl:occursCount property.

‘implicit’ means use the value of the maxOccurs on the declaration. It is a schema definition error if the value for minOccurs is not equal to maxOccurs.

‘useAvailableSpace’ means the occurrences fill the available space which is limited by a containing construct.

‘stopValue’ means look for a logical stop value which signifies the end of the occurrences.

Annotation: dfdl:element




Suggestions for  new enumeration:  
'parsed' ,  The number of occurrences is determined by parsing until a non-matching element is encountered.
change 'implicit' to mean between minOccurs and maxOccurs


As an addition should we allow the dfdl:initiatedContent property on arrays if we agree to make it discriminating?
initiatedContent Booloean

When 'true' indicates that all the children of the sequence are initiated. It is a schema definition error if any children have their dfdl:initiator property set to the empty string.

When 'false', the children of the sequence may have their dfdl:initiator property set to the empty string.

Annotation: dfdl:sequence, dfdl:choice, dfdl:group




Alan Powell

MP 211, IBM UK Labs, Hursley,  Winchester, SO21 2JN, England
Notes Id: Alan Powell/UK/IBM     email: alan_powell@uk.ibm.com  
Tel: +44 (0)1962 815073                  Fax: +44 (0)1962 816898






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