<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>22876</bug_id>
          
          <creation_ts>2013-08-04 13:14:06 +0000</creation_ts>
          <short_desc>[XSLT 3.0] Binding component references from the body of a template rule</short_desc>
          <delta_ts>2014-05-15 14:00:21 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>XPath / XQuery / XSLT</product>
          <component>XSLT 3.0</component>
          <version>Working drafts</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Kay">mike</reporter>
          <assigned_to name="Michael Kay">mike</assigned_to>
          
          
          <qa_contact name="Mailing list for public feedback on specs from XSL and XML Query WGs">public-qt-comments</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>91619</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2013-08-04 13:14:06 +0000</bug_when>
    <thetext>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&apos;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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93802</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2013-09-25 15:18:47 +0000</bug_when>
    <thetext>We think this can be handled by

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

(b) treating keys as private components.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>93863</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Kay">mike</who>
    <bug_when>2013-09-26 07:57:37 +0000</bug_when>
    <thetext>The change described in comment 1 has been applied.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>