2012-04-16 4 views
0

saxonb-xslt(約1.0のスタイルシートを警告する)とXSLT 1.0スタイルシートをsaxon-xslt(これは2.0のスタイルシートでは機能しません)で実行する必要があります。サクソンに伝える方法はありますか:「ここにスタイルシートがあり、それをどうやって処理するかを理解していますか?」saxonにXSLTバージョンを単独で把握させることはできますか?

可能な限りシンプルで、警告を受けないようにしたい。

答えて

0

なぜこの質問に回答していないのか分かりません。 Saxonのヘルプリスト(Sourceforgeのプロジェクトからアクセス可能)でSaxon特有の質問をするほうが効果的かもしれません。

最近では、旧Saxon 6.5プロセッサを使用するのに比べて、XSLT 1.0コードの処理にも最近のSaxonリリース(9.4)を使用するよう勧めています。はい、それは警告を生成します - 残念ながら、XSLT 2.0仕様では警告が必要ですが、互換性の問題を克服するにはかなり奇妙なことをしなければなりません。警告が気に入らない場合は、-versionmsg:offを使用して警告を抑制できます。

しかし、スタイルシートのversion属性に基づいて別のXSLTプロセッサを選択する場合は、そのロジックをスクリプトにコーディングするだけで済みます。これは、スクリプトがXProcやxmlshのようなXML指向の言語で書かれていれば十分ですが、汎用のシェルスクリプトを使用している場合は少し難解です。

+0

私の主張は、理由(少なくともC言語で)があるということでした。 XSLT 1.0スタイルシートを2.0と解釈し、単に警告を抑止すると潜在的に危険です。仕様に警告が必要な場合は、間違っているものがなければなりません(非互換性など)。私はあなたがサクソンに関わっているのを知っています。なぜなら、両方のプロセッサー(1.0と2.0用)を1つのツールに組み込むだけで、提供された入力のxstlバージョンを把握した後に* – bitmask