do we allow indexing of non-array, non-optional

I don't recall whether we decided this matter or not. I would search for it myself, but I tried and failed to find anything. This is a hard topic to do searching on... no good keywords. If element 'e' has maxOccurs = 1, minOccurs = 1 (or neither are mentioned), is e[1] a valid expression? what about e[../some/pathExp/here]? If element 'e' has minOccurs= 0 maxOccurs = 1, is e[1] a valid expression, or do you access an optional element just by ../e ? Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com Please note: Contributions to the DFDL Workgroup's email discussions are subject to the OGF Intellectual Property Policy <http://www.ogf.org/About/abt_policies.php>

I don't think we should depart from the standard XPath rules any more than is necessary. Sometimes an XPath author will put [1] after every scalar element as a matter of habit, because it makes the execution of the expression faster ( in some XPath processors ). regards, Tim Kimber, Technical Lead for IBM Integration Bus Healthcare Pack Hursley, UK Internet: kimbert@uk.ibm.com Tel. 01962-816742 Internal tel. 37246742 From: Mike Beckerle <mbeckerle.dfdl@gmail.com> To: "dfdl-wg@ogf.org" <dfdl-wg@ogf.org> Date: 15/10/2014 22:05 Subject: [DFDL-WG] do we allow indexing of non-array, non-optional Sent by: dfdl-wg-bounces@ogf.org I don't recall whether we decided this matter or not. I would search for it myself, but I tried and failed to find anything. This is a hard topic to do searching on... no good keywords. If element 'e' has maxOccurs = 1, minOccurs = 1 (or neither are mentioned), is e[1] a valid expression? what about e[../some/pathExp/here]? If element 'e' has minOccurs= 0 maxOccurs = 1, is e[1] a valid expression, or do you access an optional element just by ../e ? Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com Please note: Contributions to the DFDL Workgroup's email discussions are subject to the OGF Intellectual Property Policy -- dfdl-wg mailing list dfdl-wg@ogf.org https://www.ogf.org/mailman/listinfo/dfdl-wg 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

Agreed on call not to add any extra restriction but a DFDL implementation is free to issue a warning if it detects such usage. Regards Steve Hanson Architect, IBM DFDL Co-Chair, OGF DFDL Working Group IBM SWG, Hursley, UK smh@uk.ibm.com tel:+44-1962-815848 From: Tim Kimber/UK/IBM@IBMGB To: dfdl-wg@ogf.org Date: 16/10/2014 05:58 Subject: Re: [DFDL-WG] do we allow indexing of non-array, non-optional Sent by: dfdl-wg-bounces@ogf.org I don't think we should depart from the standard XPath rules any more than is necessary. Sometimes an XPath author will put [1] after every scalar element as a matter of habit, because it makes the execution of the expression faster ( in some XPath processors ). regards, Tim Kimber, Technical Lead for IBM Integration Bus Healthcare Pack Hursley, UK Internet: kimbert@uk.ibm.com Tel. 01962-816742 Internal tel. 37246742 From: Mike Beckerle <mbeckerle.dfdl@gmail.com> To: "dfdl-wg@ogf.org" <dfdl-wg@ogf.org> Date: 15/10/2014 22:05 Subject: [DFDL-WG] do we allow indexing of non-array, non-optional Sent by: dfdl-wg-bounces@ogf.org I don't recall whether we decided this matter or not. I would search for it myself, but I tried and failed to find anything. This is a hard topic to do searching on... no good keywords. If element 'e' has maxOccurs = 1, minOccurs = 1 (or neither are mentioned), is e[1] a valid expression? what about e[../some/pathExp/here]? If element 'e' has minOccurs= 0 maxOccurs = 1, is e[1] a valid expression, or do you access an optional element just by ../e ? Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com Please note: Contributions to the DFDL Workgroup's email discussions are subject to the OGF Intellectual Property Policy -- dfdl-wg mailing list dfdl-wg@ogf.org https://www.ogf.org/mailman/listinfo/dfdl-wg 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 -- dfdl-wg mailing list dfdl-wg@ogf.org https://www.ogf.org/mailman/listinfo/dfdl-wg 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

We need to create an action item for this topic: In minutes of 2014-10-28 we took the position that 'x[1]' is allowed on scalars, and implementations can warn. However,.... I just spotted this language in the latest DFDL spec, section 2.6 • Expression Errors - Indexing of non-array non-optional element Example: x[1] when x is declared and has both minOccurs="1" and maxOccurs="1" explicitly, or by not stating either or both of them. Oops... So it appears we already took a position on whether x[1] is allowed for scalars. It's not. It's a schema definition error. However, this wording suggests x[1] allowed for optional elements - and this is redundant as just 'x' would be sufficient. To me that's ok, as when dfdl:occursCountKind='parsed' we don't use maxOccurs anyway, so any non-scalar is in fact treated as an array. The issue here of course is not about the constant expression '1', but e.g., 'x[$myVar]', when $myVar might or might not have value 1 at runtime. In general you cannot tell. If we believe there should be additional mention of this behavior later in the spec in section 23, then that could be added, but I don't think we should change this aspect of DFDL. I believe it actually makes implementations harder if one blurs the lines between scalars and arrays/optionals. Right now they are reasonably cleanly separated. ...mikeb Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com Please note: Contributions to the DFDL Workgroup's email discussions are subject to the OGF Intellectual Property Policy <http://www.ogf.org/About/abt_policies.php> On Tue, Oct 28, 2014 at 2:06 PM, Steve Hanson <smh@uk.ibm.com> wrote:
Agreed on call not to add any extra restriction but a DFDL implementation is free to issue a warning if it detects such usage.
Regards
Steve Hanson Architect, *IBM DFDL* <http://www.ibm.com/developerworks/library/se-dfdl/index.html> Co-Chair, *OGF DFDL Working Group* <http://www.ogf.org/dfdl/> IBM SWG, Hursley, UK *smh@uk.ibm.com* <smh@uk.ibm.com> tel:+44-1962-815848
From: Tim Kimber/UK/IBM@IBMGB To: dfdl-wg@ogf.org Date: 16/10/2014 05:58 Subject: Re: [DFDL-WG] do we allow indexing of non-array, non-optional Sent by: dfdl-wg-bounces@ogf.org ------------------------------
I don't think we should depart from the standard XPath rules any more than is necessary. Sometimes an XPath author will put [1] after every scalar element as a matter of habit, because it makes the execution of the expression faster ( in some XPath processors ).
regards,
Tim Kimber, Technical Lead for IBM Integration Bus Healthcare Pack Hursley, UK Internet: kimbert@uk.ibm.com Tel. 01962-816742 Internal tel. 37246742
From: Mike Beckerle <mbeckerle.dfdl@gmail.com> To: "dfdl-wg@ogf.org" <dfdl-wg@ogf.org> Date: 15/10/2014 22:05 Subject: [DFDL-WG] do we allow indexing of non-array, non-optional Sent by: dfdl-wg-bounces@ogf.org ------------------------------
I don't recall whether we decided this matter or not. I would search for it myself, but I tried and failed to find anything. This is a hard topic to do searching on... no good keywords.
If element 'e' has maxOccurs = 1, minOccurs = 1 (or neither are mentioned), is e[1] a valid expression? what about e[../some/pathExp/here]?
If element 'e' has minOccurs= 0 maxOccurs = 1, is e[1] a valid expression, or do you access an optional element just by ../e ?
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | *www.tresys.com* <http://www.tresys.com/> Please note: Contributions to the DFDL Workgroup's email discussions are subject to the *OGF Intellectual Property Policy* <http://www.ogf.org/About/abt_policies.php> -- dfdl-wg mailing list dfdl-wg@ogf.org *https://www.ogf.org/mailman/listinfo/dfdl-wg* <https://www.ogf.org/mailman/listinfo/dfdl-wg>
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 -- dfdl-wg mailing list dfdl-wg@ogf.org https://www.ogf.org/mailman/listinfo/dfdl-wg
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
-- dfdl-wg mailing list dfdl-wg@ogf.org https://www.ogf.org/mailman/listinfo/dfdl-wg

Withdrawn - Section 2.6 makes it clear these are processing errors, not schema definition errors; hence, the expression 'x[...]' is allowed. ...mikeb Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com Please note: Contributions to the DFDL Workgroup's email discussions are subject to the OGF Intellectual Property Policy <http://www.ogf.org/About/abt_policies.php> On Mon, Nov 17, 2014 at 1:36 PM, Mike Beckerle <mbeckerle.dfdl@gmail.com> wrote:
We need to create an action item for this topic:
In minutes of 2014-10-28 we took the position that 'x[1]' is allowed on scalars, and implementations can warn.
However,....
I just spotted this language in the latest DFDL spec, section 2.6
• Expression Errors
- Indexing of non-array non-optional element
Example: x[1] when x is declared and has both minOccurs="1" and maxOccurs="1" explicitly, or by not stating either or both of them.
Oops...
So it appears we already took a position on whether x[1] is allowed for scalars. It's not. It's a schema definition error.
However, this wording suggests x[1] allowed for optional elements - and this is redundant as just 'x' would be sufficient. To me that's ok, as when dfdl:occursCountKind='parsed' we don't use maxOccurs anyway, so any non-scalar is in fact treated as an array.
The issue here of course is not about the constant expression '1', but e.g., 'x[$myVar]', when $myVar might or might not have value 1 at runtime. In general you cannot tell.
If we believe there should be additional mention of this behavior later in the spec in section 23, then that could be added, but I don't think we should change this aspect of DFDL. I believe it actually makes implementations harder if one blurs the lines between scalars and arrays/optionals. Right now they are reasonably cleanly separated.
...mikeb
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com Please note: Contributions to the DFDL Workgroup's email discussions are subject to the OGF Intellectual Property Policy <http://www.ogf.org/About/abt_policies.php>
On Tue, Oct 28, 2014 at 2:06 PM, Steve Hanson <smh@uk.ibm.com> wrote:
Agreed on call not to add any extra restriction but a DFDL implementation is free to issue a warning if it detects such usage.
Regards
Steve Hanson Architect, *IBM DFDL* <http://www.ibm.com/developerworks/library/se-dfdl/index.html> Co-Chair, *OGF DFDL Working Group* <http://www.ogf.org/dfdl/> IBM SWG, Hursley, UK *smh@uk.ibm.com* <smh@uk.ibm.com> tel:+44-1962-815848
From: Tim Kimber/UK/IBM@IBMGB To: dfdl-wg@ogf.org Date: 16/10/2014 05:58 Subject: Re: [DFDL-WG] do we allow indexing of non-array, non-optional Sent by: dfdl-wg-bounces@ogf.org ------------------------------
I don't think we should depart from the standard XPath rules any more than is necessary. Sometimes an XPath author will put [1] after every scalar element as a matter of habit, because it makes the execution of the expression faster ( in some XPath processors ).
regards,
Tim Kimber, Technical Lead for IBM Integration Bus Healthcare Pack Hursley, UK Internet: kimbert@uk.ibm.com Tel. 01962-816742 Internal tel. 37246742
From: Mike Beckerle <mbeckerle.dfdl@gmail.com> To: "dfdl-wg@ogf.org" <dfdl-wg@ogf.org> Date: 15/10/2014 22:05 Subject: [DFDL-WG] do we allow indexing of non-array, non-optional Sent by: dfdl-wg-bounces@ogf.org ------------------------------
I don't recall whether we decided this matter or not. I would search for it myself, but I tried and failed to find anything. This is a hard topic to do searching on... no good keywords.
If element 'e' has maxOccurs = 1, minOccurs = 1 (or neither are mentioned), is e[1] a valid expression? what about e[../some/pathExp/here]?
If element 'e' has minOccurs= 0 maxOccurs = 1, is e[1] a valid expression, or do you access an optional element just by ../e ?
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | *www.tresys.com* <http://www.tresys.com/> Please note: Contributions to the DFDL Workgroup's email discussions are subject to the *OGF Intellectual Property Policy* <http://www.ogf.org/About/abt_policies.php> -- dfdl-wg mailing list dfdl-wg@ogf.org *https://www.ogf.org/mailman/listinfo/dfdl-wg* <https://www.ogf.org/mailman/listinfo/dfdl-wg>
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 -- dfdl-wg mailing list dfdl-wg@ogf.org https://www.ogf.org/mailman/listinfo/dfdl-wg
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
-- dfdl-wg mailing list dfdl-wg@ogf.org https://www.ogf.org/mailman/listinfo/dfdl-wg
participants (3)
-
Mike Beckerle
-
Steve Hanson
-
Tim Kimber