<xsl:transform version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!--
 ! This transform demonstrates how we can transform
 ! page documents which contain supersets of html
 ! into pure html.
 +-->

<xsl:template match="page">
<html>
<head>
  <title><xsl:value-of select="@title"/></title>
  </head>
<body>
  <h1><xsl:value-of select="@title"/></h1>
  <xsl:apply-templates mode="resolve-page"/>
  </body>
  </html>
  </xsl:template>

<xsl:template match="node()" mode="resolve-page">
  <!--
   ! This is an identity template in XSLT. However,
   ! other templates with higer specificity will
   ! override this where appropriate.
   +-->
  <xsl:copy>
    <xsl:for-each select="attribute::*">
      <xsl:copy/>
      </xsl:for-each>
    <xsl:apply-templates mode="resolve-page"/>
    </xsl:copy>
  </xsl:template>

<xsl:template match="w" mode="resolve-page">
  <!--
   ! Here we resolve <w page="Name"/> elements into
   ! wikipedia links.
   +-->
  <a style="cursor: help"
     href="http://en.wikipedia.org/wiki/{@page}">
    <xsl:value-of select="@page"/>
    </a>
  </xsl:template>

</xsl:transform>

