This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
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.
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.
The change described in comment 1 has been applied.