- From: <bugzilla@jessica.w3.org>
- Date: Sat, 12 Sep 2015 17:47:28 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29122
Bug ID: 29122
Summary: declared-modes and [xsl:]default-mode
Product: XPath / XQuery / XSLT
Version: Last Call 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
Target Milestone: ---
We say in relation to declared-modes:
The declared-modes attribute of xsl:package determines whether or not modes
that are referenced within the package must be explicitly declared. If the
value is yes (the default), then it is an error to use a mode name in
xsl:template or xsl:apply-templates, or in the [xsl:]default-mode attribute of
any element, or to use the unnamed mode explicitly or implicitly in these
contexts, unless the package either contains an explicit xsl:mode declaration
for that mode, or accepts the mode from a used package. If the value is no,
then this is not an error.
In message https://lists.w3.org/Archives/Member/w3c-xsl-wg/2015Sep/0015.html
(member-only) it is pointed out that this could be read as indicating that
since the default for [xsl:]default-mode is #unnamed, a stylesheet that does
not use the [xsl:]default-mode attribute must declare the unnamed mode.
Furthermore the error condition for XTSE3085, unlike the prose description,
does not make it an error to reference an undeclared mode in @default-mode
unless the default value is actually used.
I think these ambiguities can be avoided by
(a) shortening the prose description to:
The declared-modes attribute of xsl:package determines whether or not modes
that are referenced within the package must be explicitly declared. If the
value is yes (the default), then it is an error to use a mode name unless the
package either contains an explicit xsl:mode declaration for that mode, or
accepts the mode from a used package. If the value is no, then this is not an
error.
(b) tightening the error description to:
[ERR XTSE3085] It is a static error, when the effective value of the
declared-modes attribute of an xsl:package element is yes, if the package
contains an explicit reference to an undeclared mode, or if it implicitly uses
the unnamed mode and the unnamed mode is undeclared. A mode is declared if the
package contains an xsl:mode declaration for that mode, or if the mode is a
public or final mode accepted from a used package. The offending reference may
occur in the mode attribute of an xsl:template or xsl:apply-templates
instruction, or in an [xsl:]default-mode attribute. The offending reference may
be either an explicit mode name, or the token #unnamed treated as a reference
to the unnamed mode. A package implicitly uses the unnamed mode if there is an
xsl:template or xsl:apply-templates element with no mode attribute, and with no
ancestor having an [xsl:]default-mode attribute.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Saturday, 12 September 2015 17:47:30 UTC