[Bug 28901] New: [XP 3.1] Unary Lookup

https://www.w3.org/Bugs/Public/show_bug.cgi?id=28901

            Bug ID: 28901
           Summary: [XP 3.1] Unary Lookup
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XPath 3.1
          Assignee: jonathan.robie@gmail.com
          Reporter: mike@saxonica.com
        QA Contact: public-qt-comments@w3.org

Section 3.11.3.1 contains the text

If the context item is an array, the UnaryLookup operator is equivalent to the
following expression:

for $k in 1 to array:size(.)
return .($k)

This is true only for the wildcard form of the operator, but that is covered
later in the section.

I believe that the previous statement

If the context item is a map, the UnaryLookup operator is equivalent to the
following expression:

for $k in KS
return .($k)

is true also when the context item is an array.

Using nested lists to make clear the scope of the conditionals in this section
would make it much clearer. I would be inclined to structure it as follows,
even though this involves duplication:

1. If the context item is a map:
1.1 If KeySpecifier is an NCName:
1.2 If KeySpecifier is an IntegerLiteral:
1.3 If KeySpecifier is a ParenthesizedExpr:
1.4 If KeySpecifier is a wildcard ("*")
2. If the context item is an array:
2.1 If KeySpecifier is an NCName: (always an error)
2.2 If KeySpecifier is an IntegerLiteral:
2.3 If KeySpecifier is a ParenthesizedExpr:
2.4 If KeySpecifier is a wildcard ("*"):
3. Otherwise (error)

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Sunday, 5 July 2015 20:52:53 UTC