たくさんのテンプレートを含むかなり大きなXSLファイルがあります。次に、別のXSLファイルのテンプレートを追加する必要があります。残念ながら、そこで使用されている一部のテンプレート名は、最初のファイルのテンプレート名と同じです。したがって、それらをコピーして貼り付けるだけでは、XSL全体が壊れます。
追加する前に2番目のXSLファイルをリファクタリングする最も簡単な方法は何ですか?テンプレートを別の名前空間などに配置できますか?
たくさんのテンプレートを含むかなり大きなXSLファイルがあります。次に、別のXSLファイルのテンプレートを追加する必要があります。残念ながら、そこで使用されている一部のテンプレート名は、最初のファイルのテンプレート名と同じです。したがって、それらをコピーして貼り付けるだけでは、XSL全体が壊れます。
追加する前に2番目のXSLファイルをリファクタリングする最も簡単な方法は何ですか?テンプレートを別の名前空間などに配置できますか?
新しいコードを作成する場合は、テンプレート名を名前空間に入れることができます。
コードがすでに存在する場合は、XSLT変換を処理し、
/*/xsl:template/@name
値を、で連結します。'_', $SomeSuffix
ここ$SomeSuffix
で、はグローバル/外部パラメーターです。
同じプロセスを使用して、tepmplatesの名前を、パラメーターとして指定された名前空間にある名前に置き換えることができます。
テンプレートに名前を付けた場合 (つまりtemplate name="foo"
)、はい。名前空間を使用してそれらを区別します<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:l1="http://example.com/l1" version="1.0"><xsl:template name="l1:foo">...</xsl:template></xsl:stylesheet>
。