Visual Studio 2005によるXSLTのデバッグ
恥ずかしながら最近まで気がつかなかったのですがVisual Studio 2005(以降VS2005)にはなんと、XSLTのデバッグ機能がついています。
今日は備忘録も兼ねてVS2005のXSLTデバッグ機能の使い方を書いておこうと思います。
- 対象のXSLTファイルを選択する
プロジェクト等でデバッグの対象とするXSLファイルを選択してエディタペインで開くと、プロパティウインドウが以下のように切り替わりますので
それぞれに必要な値を入力します。
以上、入力が完了したならばそのままXSLを開いたままの状態でVS2005のツールバーを見ると、以下のようなストリップが追加されているはずです。
このボタンを押下するとXSLTのデバッグを開始します。
以下、デバッグに使用したサンプルのXMLです。(この手のサンプルとして良く使われるbooks.xslとbooks.xmlを使ってみました)
以下、books.xslにブレークポイントを設定してXSLTデバッグを行っている様子です
見てわかると思いますがプログラム同様にブレークポイントを設定して、F10やF11(キーバインドがC#の場合)でステップ実行することも当然可能です。
以下はデバッグをしている時のローカル変数ウォッチペインですが、実はここが私がVS2005のXSLTデバッグが素晴らしいと思った所です。なんと、ローカル変数として表示されている変数は対象になっているXSLTによって解釈中のXPathとして評価されているのです。(スクリーンショットではself::軸やchild::軸が見えていますし@+名前で属性が表示されているのがわかるでしょう)
また以下のようにデバッグ途中のXSLTの出力結果が別ウインドウに表示されるので、実際のXSLT変換結果を確認することもできます。更新が滞る場合はコンテキストメニューで"Refresh(更新)"を行うことで最新の状態にすることもできたりします。
サーバ側から提供するXMLコンテンツを幾通りにも変化させることができるXSLTはWebベースシステム、サービス中心のシステムでは重宝しますが、XSLTは言語としては決して解り易いほうではありません。実際にどのようにXSLTがなされるのかを追うにはデバッグできれば良いのですが、XSLTのインタラクテイブなデバッグは従来は専用の高価なツールが必要でした。VS2005は最初からそのデバッグ機能が付いているのですから、追加で高価なツールを買う必要がありません。私もそれまではXMLSpyというアプリケーションを使っていましたがもう購入する必要は無さそうです。
※Visual Studio 2005 製品ライン概要を見るとXSLTデバッグ機能はStandard Edition以上で使用できるように見えます。