XHTML to XHTML のXSLT変換に成功

先日のXSLTの続き
003 覧さんを参考にやり直したところ成功。006でソースを載せたのでこちらでも載せておく。

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="xslt_test.xsl"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
  <title>XML: XSLT TEST</title>
</head>
<body>
<h1>XSLT TEST</h1>
<p>hogehoge</p>
</body>
</html>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xml:lang="ja"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:h="http://www.w3.org/1999/xhtml"
        exclude-result-prefixes="h">
<xsl:output method="html" encoding="utf-8" media-type="text/html"
        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"/>

<xsl:template match="/">
<html xml:lang="ja">
<head>
        <title>XSL TEST</title>
        <link rel="stylesheet" href="xslt_test.css" type="text/css"/>
</head>
<xsl:apply-templates select="/h:html/h:body"/>
</html>
</xsl:template>

<xsl:template match="h:body">
<body>
        <h1><xsl:value-of select="h:h1"/></h1>
        <p><b><xsl:value-of select="h:p"/></b></p>
</body>
</xsl:template>

</xsl:stylesheet>

変換前の基XHTML名前空間が割り当てられていたからtemplateでmatchしなかったのかな。まだ良く分かってない。