This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 29084 - [xslt 3.0]default-mode - ancestor, or ancestor-or-self?
Summary: [xslt 3.0]default-mode - ancestor, or ancestor-or-self?
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 3.0 (show other bugs)
Version: Last Call drafts
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Michael Kay
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-25 19:29 UTC by Michael Kay
Modified: 2015-10-29 12:42 UTC (History)
0 users

See Also:


Attachments

Description Michael Kay 2015-08-25 19:29:33 UTC
We say in 3.7.2:

When the mode attribute of these elements is omitted, or when it contains the value #default, then the mode is taken from the [xsl:]default-mode attribute of the innermost ancestor element that has such an attribute.

I think it should be the innermost ancestor-or-self element, for consistency with other attributes such as default-collation, namespace declarations, etc.

(In any case the current text is ambiguous as to whether it's the innermost ancestor of the mode attribute, or of the element from which it is omitted.)
Comment 1 Michael Kay 2015-09-03 21:22:24 UTC
The proposal was accepted.

I have rewritten the relevant text as:

More specifically, when an element <var>E</var> matches the pattern <code>(xsl:template[@match] | xsl:apply-templates)[not(@mode) or normalize-space(@mode) eq "#default"]</code> (using the Unicode codepoint collation), then the effective value of the <code>mode</code> attribute is taken from the value of the <code>[xsl:]default-mode</code> attribute of the innermost ancestor-or-self element of <var>E</var> that has such an attribute.