<xsl:call-template> |
Lets you invoke a particular template by name. This invocation is a convenient way to create commonly used output. For example, if you create an HTML page and all your HTML pages have the same masthead and footer, you could define templates named masthead and footer, then use <xsl:call-template> to invoke those templates as needed.
Category
Instruction
Required Attributes
name The name of the template you're invoking.
Optional Attributes
None.
Content
This element can contain any number of optional <xsl:with-param> elements.
Appears in
<xsl:call-template> appears inside a template.
Defined in
XSLT section 6, Named Templates.
Example
The <xsl:call-template> element gives you an excellent way to create modular stylesheets. In our case study (see Chapter 9), we need to generate common items at the top and bottom of every HTML page we generate. We build a navigation bar and title bar at the top of each panel in a similar way. Rather than intermingle these templates with the rest of our stylesheets, we put the templates for the common sections of the HTML pages in a separate stylesheet, then reference them when needed.
    <xsl:call-template name="dw-masthead"/>
    <xsl:call-template name="dw-title-bar"/>
    <xsl:call-template name="dw-nav-bar">
      <xsl:with-param name="includeMain" select="'youBetcha'"/>
      <xsl:with-param name="sectionNumber" select="$sectionNumber"/>
      <xsl:with-param name="position" select="$pos"/>
      <xsl:with-param name="last" select="$last"/>
      <xsl:with-param name="topOrBottom" select="'top'"/>
      <xsl:with-param name="oneOrTwo" select="'two'"/>
    </xsl:call-template>

    <!-- Processing for the main body of the page goes here -->

    <xsl:call-template name="dw-nav-bar">
      <xsl:with-param name="includeMain" select="'youBetcha'"/>
      <xsl:with-param name="sectionNumber" select="$sectionNumber"/>
      <xsl:with-param name="position" select="$pos"/>
      <xsl:with-param name="last" select="$last"/>
      <xsl:with-param name="topOrBottom" select="'bottom'"/>
      <xsl:with-param name="oneOrTwo" select="'two'"/>
    </xsl:call-template>
    <xsl:call-template name="dw-footer"/>
In this code fragment, we've invoked four templates to generate the look and feel we want our HTML pages to have. If we decide to change the look and feel of our tutorials, changing those four named templates lets us change the look and feel by simply transforming the XML document again. See Section 9.5.5 in Chapter 9 for details on how this works.