統合開発環境であるEclipseのプラグインOrangevoltを使ってみました。インストールや設定はOrangevolt Eclipse XSLT プラグイン入門を参照させていただきました。
Eclipseで必要な環境はできていたので、インストールは素直にできました。が、ツールバーメニューのRun Dialogが出てきません。これでは動かして試すことができないので困ってましたが、エディタ画面のコンテキストメニューで「Run As → Orangevolt XSLT」が出てくるのを発見し、ここから実行できるようになりました。
これを使ってみる気になったのは、PHPのxsltprocessorを使って開発していたシステムで意図通りにXSLTが働かず、なんとかならないかとデバッグ環境を探していたからです。で、結論から言うとデバッグはできませんでした。Javaプログラムのようにエディタ上でブレークポイントを置いて、そのときの状態を見るとかしたかったのですが、そういうものではありませんでした。デフォルトで処理系が3つ用意されており、それぞれを試してみるとエラーや警告のメッセージは微妙に異なります。なかでもデフォルトの処理系として設定されているSaxonがもっとも重要なメッセージをくれました。
ポイントはここでした:
<xsl:call-template name="template-apply" select="*">
xsl:call-templateではselectが使えない。結構基本的なことなんでしょうが、目から鱗でした。xsltprocessorはこの指定を無視して普通にカレントのコンテキストで処理を進めてしまうため、意図しない結果となっていたのです。
当初期待していたデバッグ環境は提供されなかったものの、異なる処理系を使ってみることで新たな発見があるということで、有意義な試みだったと思います。