[Bug 29887] New: [XSLT30] Assertion on attributes of xsl:for-each-group is too strict, does not take shadow attribs into account

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

            Bug ID: 29887
           Summary: [XSLT30] Assertion on attributes of xsl:for-each-group
                    is too strict, does not take shadow attribs into
                    account
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0
          Assignee: mike@saxonica.com
          Reporter: abel.braaksma@xs4all.nl
        QA Contact: public-qt-comments@w3.org
  Target Milestone: ---

This bug is courtesy of Charles Foster, he noticed it in a Skype chat.

In de XSD we have:

count((@group-by, @group-adjacent, @group-starting-with, @group-ending-with)) =
1

But this doesn't work with shadow-attributes. I propose something like the
following should work (not tested):

count((
(@group-by|@_group-by)[1], 
(@group-adjacent|@_group-adjacent)[1], 
(@group-starting-with|@_group-starting-with)[1],
(@group-ending-with|@_group-ending-with)[1]
)) = 1

Rationale: if both the shadow- and normal attribute exists, the shadow
attribute takes precedence. This also accounts for situations where you would
end up with @_group-by and @group-ending-with appearing, which is wrong,
because the first will end up after de-shadowing as @group-by.

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

Received on Thursday, 29 September 2016 22:12:21 UTC