- From: <bugzilla@jessica.w3.org>
- Date: Fri, 15 Sep 2017 14:57:14 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=30181
Bug ID: 30181
Summary: XTDE0040 and backwards compatibility with XSLT 2.0
Product: XPath / XQuery / XSLT
Version: Recommendation
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:
[ERR XTDE0040] It is a dynamic error if the invocation of the stylesheet
specifies a template name that does not match the expanded QName of a named
template defined in the stylesheet, whose visibility is public or final.
But we have several examples in the spec of templates named
xsl:initial-template, that are clearly intended to represent an entry point for
stylesheet invocation, with no visibility attribute: as far as I can see, a
template named xsl:initial-template with no visibility attribute is private,
and is therefore not a permitted entry point.
We also have numerous tests that assume invocation at a named template is
possible without declaring it public.
In addition, invocation of a stylesheet at a named template was permitted in
XSLT 2.0, and such stylesheets do not have a visibility attribute. This rule
would therefore appear to prevent an XSLT 3.0 processor executing a working 2.0
stylesheet.
The problem does not apply to modes; XTDE0045 has an escape clause that
preserves compatibility (A mode is an eligible mode if (5) The effective value
of the declared-modes attribute of the explicit or implicit xsl:package element
of P is no, and M appears as a mode-name in the mode attribute of a template
rule declared within P.)
NOTE: Saxon enforces the rule requiring an initial function to be declared
public, but does not enforce this for an initial template (which is why it
passes the tests).
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Friday, 15 September 2017 14:57:22 UTC