[Bug 27340] [xslt 3.0] Named components (section 3.6.3)

https://www.w3.org/Bugs/Public/show_bug.cgi?id=27340

Michael Kay <mike@saxonica.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #8 from Michael Kay <mike@saxonica.com> ---
I have made editorial changes which will hopefully make these distinctions
clearer.

The start of the section now reads as follows:

<p>This section discusses the use of named components in packages.</p>  

<p diff="chg" at="S-27340">The components which can be declared in one package
and referenced in another are:  <termref
def="dt-stylesheet-function">functions</termref>,  <termref
def="dt-named-template">named templates</termref>, <termref
def="dt-attribute-set">attribute sets</termref>,  <termref
def="dt-mode">modes</termref>, <termref
def="dt-accumulator">accumulators</termref>, and <termref
def="dt-global-variable">global variables</termref> and <termref
def="dt-stylesheet-parameter">parameters</termref>.</p>  

<p diff="chg" at="S-27340">In addition, <phrase diff="add"
at="P-bug22877"><termref def="dt-key">keys</termref></phrase> are classified as
named components because they can contain references to components in another
package, even though they cannot themselves be referenced from outside the
package.</p>    

<p diff="chg" at="S-27340">Named and unnamed <termref
def="dt-mode">modes</termref>, come within the scope of this section, but there
are differences noted in <specref ref="modes-and-packages"/>.</p>  

<p>Not all <termref def="dt-declaration">declarations</termref> result in
<termref def="dt-component">components</termref>:</p>  

<ulist> <item><p diff="chg" at="S-27340">Named <termref
def="dt-declaration">declarations</termref> that can neither be referenced from
outside their containing package, nor can contain references  to components in
other packages (examples are <elcode>xsl:output</elcode>,
<elcode>xsl:character-map</elcode>,  and <elcode>xsl:decimal-format</elcode>)
are not considered to be components and are therefore outside the scope of this
section.</p></item> 

<item><p>Some declarations, such as <elcode>xsl:decimal-format</elcode> and
<elcode>xsl:strip-space</elcode>,  declare aspects of the processing context
which are not considered to be components as defined here.</p></item> 

<item><p><termref def="dt-template-rule">Template rules</termref> 
(<elcode>xsl:template</elcode> with a <code>match</code> attribute) are  also
not considered to be components for the purposes of this section, which is
concerned  only with components that are bound by name. However, when an
<elcode>xsl:template</elcode>  has both a <code>match</code> attribute and a
<code>name</code> attribute, then it establishes  both a template rule and a
<termref def="dt-named-template">named template</termref>, and  in its role as
a named template it comes within the scope of this discussion.</p></item> 

<item><p>A named declaration, for example a named template, a function, <phrase
diff="add" at="M">an accumulator,</phrase> <phrase diff="del"
at="P-bug22747">an attribute set,</phrase> or a global  variable, may be
overridden within the same package by another like-named declaration  having
higher <termref def="dt-import-precedence">import precedence</termref>. When a 
declaration is overridden in this way it can never be referenced or invoked
either from  within its containing package or from outside that package; it is
effectively dead code,  and it therefore does not result in the creation of any
component, which means that it  plays no part in the component binding
process.</p></item> 

<item><p diff="add" at="P-bug22747">In the case of
<elcode>xsl:attribute-set</elcode> and <elcode>xsl:key</elcode>  declarations,
several declarations combine to form a single component.</p></item>  </ulist> 
<p>The section is largely concerned  with details of the rules that affect
references from one component to another by name, whether  the components are
in the same package or in different packages. The rules are designed to  meet a
number of requirements:</p>

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Friday, 12 December 2014 17:19:43 UTC