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 22876 - [XSLT 3.0] Binding component references from the body of a template rule
Summary: [XSLT 3.0] Binding component references from the body of a template rule
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 3.0 (show other bugs)
Version: Working 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: 2013-08-04 13:14 UTC by Michael Kay
Modified: 2014-05-15 14:00 UTC (History)
0 users

See Also:


Attachments

Description Michael Kay 2013-08-04 13:14:06 UTC
Section 3.6.2.6 describes the process of binding symbolic references (such as the template name in xsl:call-template) to actual components.

However, the text is written as if all such references appear within components. In practice, many do not: specific examples (perhaps the only examples) are references in template rules (which are not components), and references in the body of xsl:key (which I will consider in a separate bug entry). Currently these non-components are not copied by use-package in the same way that components are, which means that if they contain references to components that get overridden, there is no opportunity to rebind those references.

Because we can include individual template rules under xsl:override, I think it's probably simplest if we treat them as components with no symbolic name, whose visibility is always private (meaning they can only be referenced via the mode they belong to, assuming the mode is visible). Template rules will therefore never be the target of a component reference, but they can act as containers of (outward) component references, and they will be copied into a using package, with rebinding of their outward component references in the usual way.
Comment 1 Michael Kay 2013-09-25 15:18:47 UTC
We think this can be handled by

(a) treating outward references from template rules as being within the "mode" component, and then using the existing rules

(b) treating keys as private components.
Comment 2 Michael Kay 2013-09-26 07:57:37 UTC
The change described in comment 1 has been applied.