W3C home > Mailing lists > Public > public-qt-comments@w3.org > September 2013

[Bug 23329] New: [xslt3.0] xsl:next-match and templates using union patterns

From: <bugzilla@jessica.w3.org>
Date: Mon, 23 Sep 2013 13:40:53 +0000
To: public-qt-comments@w3.org
Message-ID: <bug-23329-523@http.www.w3.org/Bugs/Public/>
https://www.w3.org/Bugs/Public/show_bug.cgi?id=23329

            Bug ID: 23329
           Summary: [xslt3.0] xsl:next-match and templates using union
                    patterns
           Product: XPath / XQuery / XSLT
           Version: Working drafts
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0
          Assignee: mike@saxonica.com
          Reporter: mike@saxonica.com
        QA Contact: public-qt-comments@w3.org

Consider <xsl:template match="a[xx] | a[yy]">

For xsl:next-match we have a Note that says:

As explained in 6.4 Conflict Resolution for Template Rules, a template rule
whose match pattern contains multiple alternatives separated by | is treated
equivalently to a set of template rules, one for each alternative. This means
that where the same item matches more than one alternative, and the
alternatives have different priority, it is possible for an xsl:next-match
instruction to cause the current template rule to be invoked recursively. This
situation does not occur when the alternatives have the same priority.

(1) the reference to 6.4 is incorrect, it should be to 6.5.

(2) In the relevant rule in 6.5 it says "However, it is not an error if an item
matches more than one of the alternatives.". In 3.0 this would not be an error
anyway, so the sentence is obsolete.

(3) The sentence "This situation does not occur when the alternatives have the
same priority." appears unfounded. In the above example, the alternatives have
the same priority, and there doesn't seem to be any normative statement about
what xsl:next-match does in this case. I think we should say that the rule "the
template rule is treated equivalently to a set of template rules, one for each
alternative" applies only if there is no explicit priority and the alternatives
have different default priority. If they have the same (explicit or implicit)
priority, then we should behave as if there is only one template rule, which
means that next-match will not select the rule more than once.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Monday, 23 September 2013 13:40:57 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 15:45:53 UTC