3

xsltc.exe コマンドを使用して dll にコンパイルしたい XSL スタイルシートがあります。私が直面している問題は、使用されている一般的なスタイルシートがあり、私のスタイルシートが以下に示すように xsl:include タグを使用してそのスタイルシートを参照していることです:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:include href ="../objectTemplates.xslt"/></xsl:stylesheet>

参照されているスタイルシートを別の dll にコンパイルし、それを使用してコンパイルすることは可能ですか。

したがって、元のスタイルシートを「SomeStylesheet.dll」にコンパイルし、参照されたスタイルシートを「ObjectTemplate.dll」にコンパイルした場合

objectTemplates.xslt ファイルのコードを最初の XSLT ファイルに複製し、xsl:include 参照を削除する必要がありますか?それとも、それらのファイル用に別個の xsl ファイルを保持し、コンパイル済みの XSLT ファイルを引き続き使用することができますか?

どんな指針も本当に役に立ちます。

4

1 に答える 1

1

この回答を書いている時点で、対応する W3C 仕様で定義されている XSLT (1.0、2.0、および利用可能な最初のワーキング ドラフト 2.1)には、オブジェクト(スタイルシート、グローバル変数など)を使用する機能がありません。 .)外部のコンパイル済みスタイルシートから。

つまり、特定の XSLT プロセッサがスタイルシートをコンパイルできる場合、このスタイルシートはプライマリ スタイルシートとしてのみ実行でき、そのコンパイル済みフォームは、同じコンパイル済みモジュールでコンパイルされていない他のスタイルシートによってインポート/インクルードして使用することはできません。

これを超える必要がある場合は、独自の拡張関数を作成して、コンパイルされたスタイルシート内の変換とテンプレートとの間の少なくとも初歩的な通信を実装することを試みることができます。

于 2010-07-05T01:19:12.857 に答える