- From: <bugzilla@jessica.w3.org>
- Date: Sun, 19 Jun 2016 17:18:40 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29699
Bug ID: 29699
Summary: [XSLT30] XTSE3085 needs slight clarification for
<xsl:template name="x" /> situation
Product: XPath / XQuery / XSLT
Version: Candidate Recommendation
Hardware: PC
OS: Windows NT
Status: NEW
Severity: minor
Priority: P2
Component: XSLT 3.0
Assignee: mike@saxonica.com
Reporter: abel.braaksma@xs4all.nl
QA Contact: public-qt-comments@w3.org
Target Milestone: ---
(probably editorial)
This arose from a report against Exselt which was first considered an Exselt
error but I think its behavior is correct.
The way the error is currently described suggests that it is illegal to have an
xsl:template declaration with no mode-attribute unless you declare the unnamed
mode with an xsl:mode declaration. I don't think that is correct.
The error currently (note the last sentence):
<quote>
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-or-self having an [xsl:]default-mode attribute.
</quote>
Consider:
<xsl:package ...>
<xsl:template name="foo">bla</xsl:template>
</xsl:package>
According to the definition above, this should raise an error (xsl:template has
has no mode attribute).
I propose the last sentence to be editorially update with something like:
<proposal>
A package implicitly uses the unnamed mode if there is an xsl:template with a
match attribute but no mode attribute, or an xsl:apply-templates element with
no mode attribute, and with no ancestor-or-self having an [xsl:]default-mode
attribute.
</proposal>
This would make the above example legal. Only if rewritten like the following,
would (correctly) throw XTSE3085 (it implicitly uses the undeclared default
mode):
<xsl:package ...>
<xsl:template name="foo" match="/">bla</xsl:template>
</xsl:package>
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Sunday, 19 June 2016 17:18:43 UTC