Example 17-5: Named template to display Web Store products

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template name="displayProduct">
    <b><xsl:value-of select="DESCRIPTION"/></b>
    <xsl:if test="AUTHOR_NAME">
        by <xsl:value-of select="AUTHOR_NAME"/>
    </xsl:if>
    <xsl:if test="MAKER_ID">
      <br/>
      <xsl:text>Other products by </xsl:text>
      <a href="Maker.xsql?id={MAKER_ID}">
        <xsl:value-of select="MAKER_NAME"/>
      </a>
    </xsl:if>
    <br/>
    <table border="0">
      <tr>
        <td><img src="images/{SKU}.gif"/></td>
        <td valign="middle">
          <xsl:if test="LIST_PRICE">
            <b><xsl:text>List Price:</xsl:text></b>
            <strike>
              <xsl:value-of select="LIST_PRICE"/>
            </strike>
            <br/>
          </xsl:if>
          <b>
            <xsl:text>Our Price: </xsl:text>
            <font color="blue">
              <xsl:value-of select="PRICE"/>
            </font>
          </b>
          <br/>
          <xsl:if test="LIST_PRICE">
            <xsl:text>You Save: </xsl:text>
            <b>
              <xsl:value-of select="YOUSAVE"/>
            </b>
          </xsl:if>
        </td>
      </tr>
    </table>
    <xsl:if test="BLURB">
      <br/>
      <b><u><xsl:text>Features</xsl:text></u></b><br/>
      <xsl:value-of disable-output-escaping="yes" select="BLURB"/>
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>