■名前付きテンプレート<xsl:template name="テンプレート名">〜</xsl:template>
・定型的なライン、装飾、署名など多くの場面で同じ出力構造が必要な場合、その出力構造を保持する名前付きテンプレートを作成し、別のテンプレートから必要に応じて呼び出す。
■名前付きテンプレートを呼び出す <xsl:call-template name="呼び出されるテンプレート名">
・(書式)
<xsl:call-template name="呼び出されるテンプレート名"/>
<xsl:call-template name="呼び出されるテンプレート名">〜</xsl:call-template>
*子要素として<xsl:with-param>だけしか含めれない。
・name属性だけもち(必須)、このname属性で指定した名前付きテンプレートをこの位置に呼び出す。
[サンプルXML文書を表示](下のフレームに)
XMLソース
<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="temp07.xsl"?>
<root>
<title>2003年11月05日の東証株式第一部情報</title>
<info><name>銘柄</name><end>終値(円)</end><total>出来高(千株)</total></info>
<data>
<kabu><name code="6752">松下</name><end>1529</end><total>12302</total></kabu>
<kabu><name code="6753">シャープ</name><end>1786</end><total>3964</total></kabu>
<kabu><name code="6758">ソニー</name><end>4030</end><total>8220</total></kabu>
<kabu><name code="6764">三洋</name><end>516</end><total>7551</total></kabu>
<kabu><name code="6501">日立</name><end>692</end><total>21896</total></kabu>
<kabu><name code="6502">東芝</name><end>440</end><total>17832</total></kabu>
<kabu><name code="6701">NEC</name><end>1027</end><total>19229</total></kabu>
<kabu><name code="6702">富士通</name><end>708</end><total>16634</total></kabu> </data>
<end>以上です(2004/5/17)</end>
</root>
XSLソース
<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/root">
<center><H4>名前付きテンプレート例1</H4></center>
<xsl:apply-templates select="data/kabu[1]"/>
<xsl:call-template name="line"/>
<xsl:apply-templates select="data/kabu[2]"/>
<xsl:call-template name="line"/>
<xsl:call-template name="CallTemp"/>
<xsl:call-template name="line"/>
</xsl:template>
<xsl:template match="kabu">
<xsl:value-of select="./name"/>・・・ <xsl:value-of select="/root/info/end"/><xsl:value-of select="./end"/>
</xsl:template> <!--名前付きテンプレート-->
<xsl:template name="line">
<br/> 〜・〜・〜・〜・〜・〜・以上(<xsl:value-of select="title"/> より)
<hr/>
</xsl:template>
<xsl:template name="CallTemp">
<xsl:apply-templates select="data/kabu[3]"/>
</xsl:template>
</xsl:stylesheet>
end(04/5/17)