ソース XML をパイプラインで処理するために使用している複数の XSLT ファイルがあります。トリックについては知っていexsl:node-set
ますが、このワークフローでいくつかの問題が発生した後、さまざまなパスを個別の XSL ファイルに分割することにしました。今ではファイルの構造にとても満足しており、ワークフローは Eclipse でうまく機能します。私たちのリリースシステムは ant で動作します。次のようにファイルを処理できます。
<xslt basedir="src-xml" style="src-xml/preprocess_1.xsl" in="src-xml/original.xml" out="src-xml/temp_1.xml" />
<xslt basedir="src-xml" style="src-xml/preprocess_2.xsl" in="src-xml/temp_1.xml" out="src-xml/temp_2.xml" />
<xslt basedir="src-xml" style="src-xml/preprocess_3.xsl" in="src-xml/temp_2.xml" out="src-xml/temp_3.xml" />
<xslt basedir="src-xml" style="src-xml/finaloutput.xsl" in="src-xml/temp_3.xml" out="${finaloutput}" />
しかし、ディスク上の複数のファイルを経由するこの方法は、効率が悪いようです。antでこれを行うより良い方法はありますか?
Dimitreの提案に従って更新
次のように、他のさまざまな XSL のラッパーを作成しました。
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:fn='http://www.w3.org/2005/xpath-functions' xmlns:exslt="http://exslt.org/common">
<xsl:import href="preprocess_1.xsl"/>
<xsl:import href="preprocess_2.xsl"/>
<xsl:import href="preprocess_3.xsl"/>
<xsl:import href="finaloutput.xsl"/>
<xsl:output method="text" />
<xsl:template match="/">
<xsl:apply-imports />
</xsl:template>
</xsl:stylesheet>
これは...うまくいきませんでした。最終出力 XSL が実行される前に、ドキュメントが前処理されていないようです。preprocess
XSL ファイルは、ドキュメントを変更したり、属性を追加したりしています 。preprocess_3
は の出力に基づいています に..._2
基づいてい..._1
ます。このインポート ソリューションはまだ適切ですか? もしそうなら、私は何が欠けていますか?