このページでは、XSLT
のデバッグに関する制限、およびそれらの制限に対処する際の推奨メソッドについて説明します。製品の
README も参照してください。このデバッガーについて追加の制限が記載されている可能性があります。
その他
- 「XSLT コンテキスト (XSLT Context)」ビューおよび「「XSL 変換出力 (XSL Transformation Output)」ビューは、デバッグ・セッションがデバッグ・パースペクティブの外で起動されるときは、自動的に表示されないことがあります: XSL 変換デバッグ・セッションがデバッグ・パースペクティブ内にないときに起動すると、「XSLT コンテキスト (XSLT Context)」ビューおよび「XSL 変換出力 (XSL Transformation Output)」ビューが表示されない恐れがあります。
これらのビューは、ワークベンチ・メニュー・バーから「ウィンドウ」>「ビューの表示」>「その他」を選択して手動で開くことができます。「ビューの表示 (Show View)」ダイアログ・ボックスで、「デバッグ (Debug)」ノードを展開し、開くビューを選択します。
あるいは、すべてのデバッグ起動を終了し、「デバッグ・パースペクティブ」の間にアプリケーションを再起動して、この問題を訂正してもかまいません。
この問題の再発を避けるには、デバッグ・セッションを起動するときに「デバッグ・パースペクティブ」内にいないことです。
- Visual Basic Script デバッガーと競合:
Microsoft®
Visual Basic Script デバッガーと競合があるため、XSLT ブレークポイント
を拡張子が .vbs のファイルに書き込めません。
- 監視式が示す Linux® 上の結果が誤っていることがあります: この問題を回避するには、監視式を最小限に保ち、それをステップ実行時に使用不可にします。最新値を調べるには、ステップ実行の完了後監視式を再度使用可能にします。
あるいは、式を一度評価することのみが必要ならば、監視式ではなくインスペクション式を使用します。
- ノードの強調表示: ノードのステップ実行がオンならば、「エディター」ビューの XSL ソース・ファイルおよび変換プログラムによってロードされた XSL ソースはバイト単位に等しくなければなりません。等しくなければ、ノードの強調表示は正しく機能しません。
- ソース・ロケーション属性は「はい」に設定する必要があります:
これにより SourceLocator が指定され、
したがって、入力 (XML) 文書のノードのソース・ロケーションが
決定できます (ソース・ロケーションは XSL 文書の場合は常に使用可能になります)。
ソース・ロケーション属性は、デフォルトでは「オン」です。
詳しくは、
http://xml.apache.org/xalan-j/features.html#source_location
を参照してください。
- Java™
アプリケーションでは、代替の XSLT プロセッサーまたは XML パーサーを指定できません: デバッガーは Xerces および Xalan に依存しています。
プロセッサーは Xalan として明示的に設定できません (TransformerFactory システム・プロパティーを指定変更して) - これを行うと、デバッグはオフになります。
- Xalan コンポーネントの逐次化/非逐次化/クローンは行えません: 状態および参照をデバッグすると、非逐次化では正しく解決されない場合があります。
クローン作成が起こったときに、フィールドが正しく初期化されないことがあります。
さらに、
逐次化/非逐次化/複製による既存の Xalan バグがあります。
- カスタム・トレース・リスナーの使用: カスタム・トレース・リスナーを
デバッガーに使用すると、予期しない結果になる恐れがあります。
- ブレークポイント: XSLT スタイルシートのブレークポイントがサポートされるのは、テンプレート規則内に限られます。
例えば、グローバル変数上のブレークポイントはサポートされません。
- 生成済みファイルの長さ: 2147483647 バイトを超える生成済みファイルは
サポートされません。
- ブラウザー・ビューのリンクおよびイメージ: 「出力の変換 (Transform Output)」ビュー
のブラウザー・ビュー内のリンクおよびイメージが機能するのは、
出力ファイルを指定し、その出力ファイルのパスが
リンクおよびイメージの検出が可能になるようなパスである場合に限られます。
出力ファイルは、起動構成で指定できます。
- ブラウザー内の XML 出力: 文書のすべてのタグに
それぞれのクローズ・タグが存在するまでは、XML 出力はブラウザー内で
正しく表示されません。
これは、ブラウザーの制限です。
- 入力 XML 文書でのブレークポイントの設定: 入力 XML 文書のブレークポイント
を XSL 変換に設定すると、デバッガーが停止するのは、
そのノードが現在のコンテキスト・ノードのときであっても、
要素のオープン・タグか要素のクローズ・タグのいずれかの
クローズ「>」を含む行にブレークポイントが設定された場合に限られます。
- 「XSLT コンテキスト (XSLT Context)」ビュー: ノード・リストがソートされる場合、「XSLT コンテキスト (XSLT Context)」ビューは、ノード・リストをソート順ではなくドキュメント順に表示します。
複数言語の制限
次の制限が適用されるのは、Java アプリケーションからスタイルシートにステップイントゥするときのみです。
- フレームにドロップおよびホット・コード置換:
Java
から呼び出した XSLT をデバッグする間は、フレームにドロップおよびホット・コード置換フィーチャーを使用しないでください。
- インクリメンタル機能はオフにする必要があります: インクリメンタル機能は、
オフにする必要があります。
オンのとき、DTM (入力の内部表記) は、入力全体が構文解析されることを待機する代わりに、徐々にビルドされます。
この機能は、デフォルトではオフです。
詳しくは、
http://xml.apache.org/xalan-j/features.html#incremental
を参照してください。
- 生成済みソースのユーザー指定 URIResolvers の限定されたサポート: カスタムの URI リゾルバーを使用して、インポート、インクルード、および文書呼び出しを解決するときは、デバッガーで文書のソースが表示不能になることがあります。
しかし、変換は続行します。
- 生成済みソースの外部エンティティー参照はサポートされません: ソース
の XML 文書に、生成済みソース (SAX または DOM) シナリオに
外部エンティティー宣言付きのインライン DOCTYPE が含まれる場合は、
外部エンティティーの次の使用で、誤った結果が生じる恐れがあります。
- JAXP を DOMSource ソース・オブジェクトに使用する変換のデバッグ: DOMSource である
ソース・オブジェクトに JAXP を使用する XSL 変換を
デバッグするときは、DOMSource に SystemId が設定されている必要があります。
スタイルシートを呼び出す
Java
または
Java
を呼び出すスタイルシートをデバッグするときは、一般的な混合言語デバッグ制限も適用されます。これらの制限は、Java および混合言語デバッグ関連のドキュメンテーションに記載されています。