<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">

  <!--
    Match the root of the document, and apply templates
    to every child element of it.

    This is only necessary for IE 5 and IE 5.5 - it will happen
    by a built-in rule in XSLT 1.0 compliant browsers.
    (See http://www.w3.org/TR/xslt#built-in-rule)
  -->

  <xsl:template match="/">
    <xsl:apply-templates />
  </xsl:template>

  <!--
    This is the identity template - it will produce a copy of 
    any node that it matches (and it will match all nodes in the
    input document, unless its overridden by other templates in
    this document).

    In IE 5 and IE 5.5, it's important that this template is before
    any of the templates that are intended to override it, because
    when there is any ambiguity over which template to use, IE 5 and 
    IE 5.5 use the one that is defined last in the file.

    In XSLT 1.0 compatible browsers, the ordering doesn't matter -
    the most specific match is used, and since the identity template
    is the least specific match in the document, it will always be
    overridden by other templates. 
    (See http://www.w3.org/TR/xslt#conflict)
  -->

  <xsl:template match="node()|@*">			<!-- match any node or attribute -->
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>		<!-- apply matching template if any --> 
    </xsl:copy>
  </xsl:template>


  <xsl:template match="html">
    <html>
    
      <xsl:apply-templates />

    </html>
  </xsl:template>

</xsl:stylesheet>