It has been raised that the dfdl:unorderedInitiated
property is redundant, because we have speculative parsing, and because
the DFDL parser can optimise by analysis without being explicitly told.
This is true but saying that all children of a sequence have an initiator
is also a way for the modeler to ensure that his model is correct and that
all children are correctly specified. I propose that we decide whether
to:
a) Drop the property
b) Rename the property dfdl:initiated
and have it apply to any sequence, ordered or unordered
There's also a question in the spec
that we should resolve.
(TBD: do we allow sequences with initiators
to be children of an unordered sequence, or do we require the children
of an unordered sequence to be elements? Conservative would be to require
elements.)
To which Mike had commented:
Suggest sequences where children have
initiators cannot be directly nested. You must use an element in this case.
I would prefer that children of an unordered sequence are required to be
elements in general for v1.0.
I'd like to close on this as well.
Let's discuss on today's call.
Regards
Steve Hanson
Programming Model Architect
WebSphere Message Brokers
Hursley, UK
Internet: smh@uk.ibm.com
Phone (+44)/(0) 1962-815848
----- Forwarded by Steve
Hanson/UK/IBM on 29/04/2009 10:38 -----
Steve Hanson/UK/IBM
28/04/2009 15:41
|
To
| Tim Kimber/UK/IBM
|
cc
| Alan Powell/UK/IBM@IBMGB
|
Subject
| Re: UnorderedInitiatedLink |
|
Here's the table from draft 0.33:
sequenceKind
|
separatorPolicy
|
Implications |
unorderedInitiated
| ignored (suppress behavior implied)
| Initiators are used to identify
which elements are present and which are missing.
All children must have dfdl:initiator strings
that are distinct and not the empty string. (Schema definition error otherwise.)
nilValueInitiatorPolicy and defaultValueInitiatorPolicy
must both be 'required' (Schema definition error otherwise) |
Setting unorderedInitiated forces extra
checks to take place to ensure that an initiator would be present under
all circumstances. I think this provides a direct equivalent to TDS
Tagged.
I'd prefer that speculative parsing
was the sole mechanism used to resolve the child elements. In practice,
most unordered sequences will have initiators on their children anyway.
There's also this comment in the spec:
(TBD: do we allow sequences with initiators
to be children of an unordered sequence, or do we require the children
of an unordered sequence to be elements? Conservative would be to require
elements.)
To which Mike had commented:
Suggest sequences where children have
initiators cannot be directly nested. You must use an element in this case.
I would prefer that children of an unordered sequence are required to be
elements in general for v1.0.
Which corresponds to schema's rule for
xs:all and the MRM's rule for unorderedSet, so I'm happy with that.
Regards
Steve Hanson
Programming Model Architect
WebSphere Message Brokers
Hursley, UK
Internet: smh@uk.ibm.com
Phone (+44)/(0) 1962-815848
Tim Kimber/UK/IBM
15/04/2009 23:26
|
To
| Alan Powell/UK/IBM@IBMGB
|
cc
| Steve Hanson/UK/IBM@IBMGB
|
Subject
| Re: UnorderedInitiatedLink |
|
Hi Alan,
Understood. In that case, please can
you add this to the list of unresolved issues in the specification. We
should take pains not to include redundant properties in DFDL v1.0, because
each property has a cost in terms of implementation, testing and documentation.
regards,
Tim Kimber, Common Transformation Team,
Hursley, UK
Internet: kimbert@uk.ibm.com
Tel. 01962-816742
Internal tel. 246742
From:
| Alan Powell/UK/IBM
|
To:
| Tim Kimber/UK/IBM@IBMGB
|
Cc:
| Steve Hanson/UK/IBM@IBMGB
|
Date:
| 15/04/2009 09:37
|
Subject:
| Re: UnorderedInitiated |
Tim
The problem with committees is that
you can't just decide by yourself to drop something.
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
From:
| Tim Kimber/UK/IBM
|
To:
| Alan Powell/UK/IBM@IBMGB
|
Cc:
| Steve Hanson/UK/IBM@IBMGB, Dragan Besevic/Boca
Raton/IBM@IBMUS, Sunil Dandamudi/Boca Raton/IBM@IBMUS, Lorenzito Jimenez/Boca
Raton/IBM@IBMUS
|
Date:
| 14/04/2009 21:19
|
Subject:
| Re: UnorderedInitiated |
Alan,
Thanks for the clarification. If that
is the only reason for the property then it should be removed in v0.34.
The PIF generator can easily perform that kind of optimisation ( if necessary
). This is not the only optimisation which the PIF generator might
want to perform, and the specification does not supply extra properties
for those other cases.
regards,
Tim Kimber, Common Transformation Team,
Hursley, UK
Internet: kimbert@uk.ibm.com
Tel. 01962-816742
Internal tel. 246742
From:
| Alan Powell/UK/IBM
|
To:
| Tim Kimber/UK/IBM@IBMGB
|
Cc:
| Steve Hanson/UK/IBM@IBMGB
|
Date:
| 14/04/2009 17:23
|
Subject:
| Re: UnorderedInitiated |
Tim
There is a history.
You are correct that speculative parsing
should take care of it all. However originally unordered elements had to
be initiated. When that was relaxed it was felt that it was worth giving
the parser a chance to optimize to initiated case. Designed by committee.
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
From:
| Tim Kimber/UK/IBM
|
To:
| Steve Hanson/UK/IBM@IBMGB, Alan Powell/UK/IBM@IBMGB
|
Date:
| 08/04/2009 22:54
|
Subject:
| UnorderedInitiated |
I can't see why this is required, but
I'm probably missing something. Wouldn't the normal speculative parsing
rules will make use of the initiator if it is present. Or does unorderedInitiated
cause the initiator to behave as a discriminator? If so, I would prefer
to leave that to the user. We don't do it for any other point of uncertainty
( there's no equivalent choiceInitiated setting ).
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