2

XML 形式を HTML に変換する大きな XSLT スタイルシートがあります。入力 XML ファイルに XInclude のサポートを追加したいと考えています。目標は、インクルードする XML ファイルと同様に、各インクルード ファイルを個別に XSD 検証できるようにすることです。そのための XML スキーマのすべての変更を管理しています (と思います)。インクルード ファイルに移動できる特定の XML 要素のみがあり、インクルード ファイルのネストは 1 レベルのみです。私は Eclipse の XML エディタで作業しています。インクルード ファイルと各インクルード ファイルの両方を適切に検証します。

XSLT スタイルシートは 2 つの方法で使用されます。ここで、私の質問に近づきます。

  1. XSLT 変換に lxml を使用する Python スクリプトによるビルド環境。Python スクリプトは、make ベースのビルド環境と Eclipse 用の Ant スクリプトに統合されています。

  2. インクルード XML ファイルの xsl-stylesheet 命令。これは、Web ブラウザーで XML ファイルに加えた変更をすぐに確認したい場合に使用します。これまでのところ、これは非常に効果的な環境であることが証明されているので、それを失いたくありません。

Python スクリプトで ElementTree.xinclude() メソッドを使用して、ユース ケース 1. を機能させることができました。ただし、それはユース ケース 2 の解決策ではありません。

また、Xinclude 解決のみを実行する XSLT スタイルシートを作成する方法も理解しています。理論的には、これを最初の変換として使用し、続いて XML から HTML への変換用の既存の XSLT スタイルシートを使用できます。問題は、XML ファイルに xsl-stylesheet 命令を 1 つしか含めることができないことです。

もう 1 つのアイデアは、XInclude の解決を Web ブラウザーに任せることです。ただし、それをサポートする Web ブラウザーは知りません。また、特定の 1 つのブラウザーのみを使用するように制限されるのも嫌です。これまでのところ、最も一般的なブラウザをすべてサポートしています。

もう 1 つのアイデアは、既存の XSLT スタイルシートに XInclude 解決サポートを追加することです。ただし、これらは実際には3つの段階であるため、入力と出力に苦労しています(ファイルのようにXML入力-> Xincludeが解決されたFLat XML-> HTML。XInclude解決部分は最初の変換を実行する必要があります既存の XSLT コードは 2 番目を実行しますが、1 つのスタイルシートでそれが可能かどうかはわかりません。

私の質問は次のとおりです。

  1. XML ファイル (を含む) を Web ブラウザで開くときに、2 つの XSLT スタイルシートを呼び出す方法はありますか?

  2. XInclude サポートを使用して既存の XSLT スタイルシートを改善し、単一のスタイルシートのままにする方法はありますか?

  3. XSLT スタイルシートで入力を変更する方法はありますか?

  4. Web ブラウザは、XInclude 解決をサポートしていますか?

ありがとうアンディ

4

2 に答える 2

0

あなたはおそらくそれをするためにXProcを見る必要があります

単一のXSLTで実行するには複雑すぎるユースケースのようです

于 2013-03-23T11:56:45.297 に答える