Hi all,
I know this area of the specification
was only recently resolved, and I think there may be an inconsistency in
the v0.37 wording.
Section 16, re: sequenceKind says: "The
children of an unordered sequence must be xs:element."
Section 16.5 Floating Elements says:
"An ordered sequence of n element
children with either n or n-1
of those
children with dfdl:floating="true" is equivalent to an unordered
sequence with the same n element children with
dfdl:floating="false". A complex
element with dfdl:floating="true" can have as its content model
a sequence with elements that also have dfdl:floating="true".
"
Now suppose that, instead of N element
children, there are N-1 floating element children + one non-floating group.
This group will be equivalent to an unordered group with a non-element
member.
If the specification was intending to
make life easy for implementers, then it should probably disallow groups
in any non-ordered context, including when sequenceKind='ordered' and there
is at least one floating component. But I think that would be too restrictive.
I would be happy for the restriction to be lifted entirely. Given that
unordered groups can have dfdl:initiated="false", it will sometimes
be necessary to find the correct member by trial and error ( speculative
parsing ) anyway. I don't think it's any more difficult to speculatively
parse a group than to speculatively parse a complex element.
If I've missed something, and it turns
out that the restriction is useful, then we should
a) tighten up the wording to say that
if a group with N members has N or N-1 floating members, then it must be
validated as if it was an unordered group.
b) consider lifting the restriction
in cases where dfdl:initiated="true" ( because it makes things
so much easier for the DFDL processor )
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