スタイルシート変換言語 XSLT

<xsl:copy>の解説です。  スタイルシート変換言語 XSLTリファレンス 

<xsl:copy>

<xsl:copy 
use-attribute-sets="qnames">
・・・
</xsl:copy>
xsl:copyはカレントノードのコピーを文書から生成します。 このときにノードの名前空間もコピーされます。 しかし、ノードの属性や子はコピーされません。
zipファイル 以下のサンプルをダウンロード(ZIP圧縮)
■ aaa.xml
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="bbb.xsl"?>

<data>
<table width="430" border="1">
<tr>
<td bgcolor="#ccccff">変換言語 XSLT</td>
<td>XML文書を別の形式に変換する「XSLT」リファレンス</td>
</tr>
<tr>
<td bgcolor="#ccccff">伸び縮み XML</td>
<td>意味付け可能な柔軟性のある言語「XML」リファレンス</td>
</tr>
</table>
</data>
■ bbb.xsl
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <html>
 <body>
  <h1>サイトの超簡易説明</h1>
  <xsl:apply-templates />
 </body>
 </html>
</xsl:template>

<xsl:template match="@*|node()">
 <xsl:copy>
  <xsl:apply-templates select="@*|node()"/>
 </xsl:copy>
</xsl:template>

</xsl:stylesheet>
上記のサンプルにある「@*|node()」は「全ての属性、又は全てのノードと一致 する」という意味を持ちます。カレントノードが要素である場合、 そのノードの内容や属性はコピーされない為、カレントノードの 属性にもテンプレートルールを適用させる必要があります。
サンプル
XSLT要素一覧
+ <xsl:apply-imports>
+ <xsl:apply-templates>
+ <xsl:attribute>
+ <xsl:attribute-set>
+ <xsl:call-template>
+ <xsl:comment>
+ <xsl:copy>
+ <xsl:copy-of>
+ <xsl:decimal-format>
+ <xsl:element>
+ <xsl:fallback>
+ <xsl:for-each>
+ <xsl:if>
+ <xsl:import>
+ <xsl:include>
+ <xsl:key>
+ <xsl:message>
+ <xsl:namespace-alias>
+ <xsl:number>
+ <xsl:otherwise>
+ <xsl:output>
+ <xsl:param>
+ <xsl:preserve-space>
+ <xsl:processing-instruction>
+ <xsl:sort>
+ <xsl:strip-space>
+ <xsl:stylesheet>
+ <xsl:template>
+ <xsl:text>
+ <xsl:value-of>
+ <xsl:variable>
+ <xsl:when>
+ <xsl:with-param>