O'Reilly logo

Building Oracle XML Applications by Steve Muench

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

The Talented Identity Transformation

The XSLT identity transformation is a stylesheet that transforms a document into itself. It does this using a single template that matches any node or any attribute ("node( )|@*") and whose content is the single <xsl:copy> action that copies the current node. Example 9.1 shows what the identity transformation looks like:

Example 9-1. The XSLT Identity Transformation

<!-- The Identity Transformation -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <!-- Whenever you match any node or any attribute -->
  <xsl:template match="node( )|@*">
    <!-- Copy the current node -->
    <xsl:copy>
      <!-- Including any attributes it has and any child nodes -->
      <xsl:apply-templates select="@*|node( )"/>
    </xsl:copy>
  </xsl:template>
</xsl:stylesheet>

The <xsl:copy> action copies the current node and its namespaces; however, by default it doesn’t copy any of the current node’s attributes or child nodes. You indicate which attributes and child nodes should be copied by instantiating them in the body of the <xsl:copy> element. In the case of the identity transformation, the template selects all attributes and all child nodes to be included recursively.

Renaming and Suppressing Elements

Whenever you want to make global changes to a document but leave its fundamental structure intact, the identity transformation is a great place to start. By importing the Identity.xsl stylesheet into your new transformation, you can provide additional templates ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required