はい - xsl:call-template と呼ばれます。
どのテンプレートにも名前を付けることができます。名前はネームスペースで修飾できます。例えば...
<xsl:template match="some match condition" name="call-me">
bla bla bla (template content)
</xsl:template>
テンプレートに名前がある場合は、そのように一致条件を省略することもできます...
<xsl:template name="call-me">
<xsl:param name="phone-number" />
bla bla bla (template content)
</xsl:template>
名前付きテンプレートには、好きなだけパラメーターがあります。上記のフラグメントは、phone-number という名前の 1 つのパラメーターを宣言する例です。テンプレートのシーケンス コンストラクター内で、変数と同じ方法でこのパラメーターを参照します。
$phone-number
名前付きテンプレートを呼び出すには、シーケンス コンストラクター内から xsl:call-template を使用します。例えば ...
<xsl:call-template name="call-me">
<xsl:with-param name="phone-number" select="'55512345678'" />
</xsl:template>
xsl:with-param
実際のパラメータ値を渡すために使用されることに注意してください。
XSLT 2.0 では、XPATH 式内から呼び出し可能な関数も定義できることに注意してください。状況によっては、名前付きテンプレートよりも関数の方が適している場合があります。
参照:
- XSLT 2.0 仕様: 名前付きテンプレート。
- XSLT 1.0 仕様: 名前付きテンプレート。