Pojmenované šablony

  • šablonu lze pojmenovat

  • lze ji pak volat pomocí instrukce xsl:call-template

  • umožňuje lepší modularizaci kódu

Příklad 19. pojmenovana-sablona.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                version="2.0">

<!-- Pojmenovaná šablona se dvěma parametry -->
<xsl:template name="kontakt">
  <xsl:param name="jmeno"/>
  <xsl:param name="email"/>
  
  <xsl:value-of select="$jmeno"/>
  <xsl:if test="$email != ''">
    <xsl:text> (e-mail: </xsl:text>
    <a href="mailto:{$email}"><xsl:value-of select="$email"/></a>
    <xsl:text>)</xsl:text>
  </xsl:if>  
</xsl:template>
  
<xsl:template match="/">
  <html>
    <head>
      <title>Kontakty</title>
    </head>
    <body>
      <h1>Kontakty na vedení firmy</h1>
      
      <p>Ředitel: 
        <xsl:call-template name="kontakt">
          <xsl:with-param name="jmeno">Jan Novák</xsl:with-param>
          <xsl:with-param name="email">novak@example.org</xsl:with-param>
        </xsl:call-template>
      </p>
      
      <p>Skladník:
        <xsl:call-template name="kontakt">
          <xsl:with-param name="jmeno">Josef Procházka</xsl:with-param>
        </xsl:call-template>
      </p>      
    </body>
  </html>  
</xsl:template>  

</xsl:stylesheet>