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