このサイトをビューするために JavaScript を有効化してください。

Altova XMLSpy 2021 Professional Edition

XPath/XQuery ウィンドウのデバッグモードによりアクティブなファイルのコンテキスト内で XPath/XQuery 式をデバッグすることが可能になります (下のスクリーンショット)。

 

デバッグモード内では結果ペインに2つのペインが追加されました (下のスクリーンショットを参照):

 

ペイン内で個別のタブを有するコールスタックとデバッグポイントペイン。

ウォッチ式と変数が同じペインに表示されている変数とウォッチペイン。

XPathXQueryWindowDebug01

式と結果ペインは水平的、または垂直的に隣接することができます。これらのレイアウトを切り替えるには、(ウィンドウのツールバーの右上の) 「水平的な/垂直的なレイアウト」 ボタンをクリックします。

 

デバッガーモードには以下の機能が搭載されています:

 

XPath 式がどのように評価されているか確認するために XPath 評価プロセスにステップインすることを可能にします。ステップイン (F11) ツールバーボタンをこの目的にために使用します。各評価ステップでは、式の一部が現在評価されている場合は黄色でハイライトされますがそのステップの評価の結果は結果ペイン内で表示されます (上のスクリーンショットを参照)。 例えば、 上のスクリーンショットでは、 book 要素のすべての section 子孫要素が選択されています。

評価を一時停止する箇所にブレークポイントを設定し、この箇所の結果を確認します。 評価をブレークポイントでのみ一時停止してステップスルーすることができます。このために デバッグの開始 (F5) ツールバーボタンを使用します。これは ステップイン (F11) を使用して全てのステップで一時停止するよりも素早く評価を行うことができます。を使用してください。

トレースポイントを設定してトレースポイントとしてマークされたステップでの結果のレポートを確認することができます。評価は (ブレークポイント以外) 一時停止せず、トレースポイントの結果は結果ペイン内のリストに表示されます。

ウォッチ式は (評価のドキュメントデータまたはアスペクトなど) 情報を確認するために使用することができます。これはブレークポイントに対して特に役に立ちます。

自身の値を含むスコープ内の変数は変数とウォッチ式ペイン内に表示されます。

評価ステップのプロセッサーの呼び出しはコールスタックとデバッグペインのコールスタックタブ内で表示されています。

ブレークポイントとトレースポイントが設定されている場合、これらhコールスタックとデバッグペインのデバッグポイントタブに表示されます。

 

これらの機能の詳細に関しては、下の説明を参照してください。

 

デバッグモードのセットアップ

デバッグモードを切り替えるには、ツールバーの左上にある 「評価/デバッグの開始 (F5)」 コマンドのドロップダウンメニュー内の「デバッグの開始」をクリックします(下のスクリーンショットを参照) 。 デバッグモード内では、ウォッチ式、コールスタック、およびデバッグポイントペインが表示されます。現在の式のデバッグを開始するには、 「デバッグの開始」 または 「F5」をクリックします。

XPXQWindowSelectEvalMode

現在のファイルでのみデバッグモードは作動することに注意してください。複数のファイルとは使用することができません。この結果、選択個所が現在のファイルに設定されていると、このモードに切り替えられます。

 

 

デバッガーの実行

XPath/XQuery 式のデバッグのためのステップは通常以下で説明される通りです:

 

1.式を実行する XML/JSON ファイルをアクティブなファイルにします。

2.XPath/XQuery 式を式ペインに入力します。

3.ブレークポイントまたはトレースポイントを設定します。ブレークポイントは評価が一時停止されるポイントです。 トレースポイントは評価が記録されるポイントです。ですからトレースポイントは評価結果をトレースすることが可能なパスを提供します。

4.「デバッガーの開始」,をクリックすると、式内でブレークポイントがマークされていない限り、評価が終わりまで1つのステップで実行さ 「デバッガーの開始」 を繰り返しクリックして、各ブレークポイントを前進し評価の終わりまで到達します。

5.ステップイン/アウト/オーバー機能を使用してステップバイステップに評価を進めることができます。

 

 

評価ステップのステップイン、アウト、オーバー

ステップイン 機能は評価をステップバイステップで行うことができます。このコマンドは評価の次のステップに移動します。現在のステップは式内でハイライトされて表示されています (下のスクリーンショットを参照)ステップアウト 機能は現在のステップを高いレベルに移動しますが、ステップオーバー 機能は同じレベルよりも1つ低いレベルに移動します。下の XQuery 3.1 式を式ペインに張り付け ステップ ボタンをクリックしてステップ機能をテストすることができます。

 

 

 

下のスクリーンショットは $i=1 である最初のパススルーループ中に追加ステップに到達した際に処理が一時停止された評価を表示しています。 この追加ステップでは、結果は( 1+2 の結果である) 3 を表示します。

XPathXQueryWindowDebug02

 

ブレークポイント

ブレークポイントは 「デバッガーの開始」 を使用して開始された後デバッガーを停止するポイントです。デバッガーがブレークポイントで停止すると、結果をチェックして「ステップイン」機能を使用し評価の次のステップの結果を表示することができます。 ブレークポイントを設定するには、ブレークポイントを設定する箇所でカーソルを式内にポイントし、 「ブレークポイントの挿入/削除 (F9)」ツールバーボタンをクリックします。ブレークポイントは赤い点線のオーバーラインで表示されます。 ブレークポイントを削除するには、選択し「ブレークポイントの挿入/削除 (F9)」をクリックします。

 

デバッグポイント を参照してください。

 

トレースポイント

トレースポイントは結果が記録されるポイントです。これらの結果は結果タブのトレース ツリー内で表示されます (下のスクリーンショットを参照)。これにより式の特定の箇所のすべての評価結果を確認することができます。 例えば、下のスクリーンショット内では、トレースポイントは $a, $b, と local:plus($i, $i+1); に設定されており、ループの最初の反復中のこれらのトレースポイントでの結果は以下の トレース ツリーに表示されます: $a=1, $b=2, と local:plus($i, $i+1)=3.

 

トレースポイントを設定するには、トレースポイントを設定する箇所でカーソルを式内にポイントし、 ツールバーボタン 「トレースポイントの挿入/削除 (Shift+F9)」をクリックします。トレースポイントは赤い点線のオーバーラインで表示されます。 (下のスクリーンショットを参照). トレースポイントを削除するには、選択し トレースポイントの挿入/削除 (F9)」をクリックします。

XPathXQueryDebug03BreakTrace

メモ:ブレークポンととトレースポイントがセットで式の一部である場合、オーバーラインは赤と青の点線で示されています。

 

デバッグポイント を参照してください。

 

変数、ウォッチ式、およびコールスタック

変数とウォッチ式は変数とウォッチ式ペインに表示されます (下のスクリーンショットの下の中央のペイン)

XPathXQueryWindowDebug03

変数

式内で宣言されており、現在の評価ステップ内のスコープにある変数は対応する現在の値と共に表示されます。 例えば、 上のスクリーンショットでは、処理はlocal:plus 関数への呼び出しに達成しました。 $i 変数は local:loop 関数のスコープ内にあり、 2 に増やされました。ですから、 $i は現在の値と共に表示されています。 $a$b 変数は local:loop 内にはなく、このためスコープ内にはありません。この結果これらは表示されません。

 

ウォッチ式

評価の開始前、または、評価の一時中止中にウォッチ式を入力することができます。次の目的のために使用することができます :

 

特定の条件をテストするため。例えば、 上のスクリーンショットでは、 ウォッチ式 $i=1 to 5$i 変数が指定された範囲に値を持つかをテストするために使用されています。結果 true は条件が満たされたことを示しています。

特定のコンテキスト内のデータを検索するため。例えば、Company 要素のコンテキストでウォッチ式 @id を入力して、会社の顧客コードを XML ターゲットドキュメント内でルックアップすることができます。

追加データを生成するため。追加データを生成するため。例えば、 上のスクリーンショットでは、 ウォッチ式 if ($i=1 to 5) then (concat("Iteration ", $i)) else "Out of Loop" は現在の評価ループを反復する適切な文字列を生成することができます。

 

ウォッチ式を入力するには、ペインのルールバー内で(上のスクリーンショットで赤い枠で囲まれてる) 「ウォッチエントリの追加」 をクリックし、式を入力し、完了すると Enter をクリックします。ウォッチ式を削除するには、ツールバー内で選択し「選択されたウォッチエントリを削除する」をクリックします。 デバッグ中に式が (例えば、変数の一つがスコープ外にあるなど)何らかの理由で正確に評価されない場合ウォッチ式は赤い色で表示されます。

 

コールスタック

コールスタックとデバッグポイントペインのコールスタックタブはその時点までのデバッグ内のプロセッサーの呼び出しを表示しています。 (上のスクリーンショット内の右下のペイン) 現在のプロセッサーの呼び出しは黄色でハイライトされています。現在の評価ステップに直接導いた呼び出しが表示されます。例えば、 上のスクリーンショットでは、 現在の評価ステップは local:plus への関数呼び出しです。これは local:loop の2番目の反復ですが、最初の反復のプロセッサー呼び出しは表示されません。これはこれらの呼び出しは現在の関数呼び出しの並列レベルにあり、呼び出しを導いたわけではありません。

 

デバッグポイント

コールスタックとデバッグポイント ペインのデバッグポイントタブは式に設定することのできるブレークポイント (赤丸) とトレースポイント (青丸) を表示します (下のスクリーンショット内の右下のペイン) 。各デバッグポイントはラインと文字番号と共にリストされています。 例えば、 FunctionCall@7:13 はライン7、文字13にデバッグポイントが存在することを示しています。

XPXQWindowDebugPoints

以下の機能に注意してください:

 

ブレークポイントに関しては、ブレーク条件の入力をダブルクリックして、 「ブレークの条件」 を入力し、 「Enter」 を押して入力します。ブレークポイントは条件が true を評価すると有効化されます。例えば、 上のスクリーンショットでは、 ブレークの条件 $i=3$i の値 3 がの場合のみこの関数呼び出し上でブレークポイントを有効化します。スクリーンショットは子のブレークポイントで一時停止された評価を表示しています。

全てのデバッグポイントの有効化/無効化を対応するツールボタンをクリックすることで行うことができます: 全てのデバッグポイントの有効化全てのデバッグポイントの無効化 (ボタンは上のスクリーンショット内でボタンは緑色の枠で囲まれています)。デバッグポイントが無効化されると、有効化されるまで全て無効化されます。

対応する コンテキストメニュー内で個別のブレークポイントを有効化/無効化することができます。

 

ペイン内のツールバーコマンド

デバッグモード内の XPath/XQuery ウィンドウにはナビゲート、検索、およびコピー機能を含むボタンが搭載されています (上のスクリーンショットを参照)。これらのアイコンは左から以下のテーブルで説明されています。対応するコマンドは結果リストアイテムのコンテキストメニューで使用することができます。

 

 

アイコン

動作

次、前

結果リストからそれぞれ次のおよび前のアイテムを選択します。

クリップボードに選択されたテキストラインをコピーする

クリップボードに選択された結果アイテムの値カラムをコピーします。全てのカラムをコピーするには、全てのカラムを含みコピーするコマンドに切り替えてください (下を参照)。

全てのメッセージをクリップボードにコピーする

空の値を含む値カラムのすべての結果アイテムをクリップボードにコピーします。各アイテムは異なるラインにコピーされます。

全てのカラムを含みコピーする

(i) 全てのカラム、または (ii) 値カラムのコピー間を切り替えます。カラムの区切りは単一のスペースです。

検索する

結果リスト内で特別文字を含む文字列を検索する検索ダイアログを開きます。

前を検索する

検索ダイアログ内に最後に入力された用語の前の発生を検索します。

次を検索する

検索ダイアログ内に最後に入力された用語の次の発生を検索します。

クリア

結果のリストをクリアする

複数のラインの結果を単一のラインに折りたたむ

結果アイテムの値カラムが複数ラインのテキストを含む場合、 (新しいラインまたは文字を含む場合)、複数ラインと単一ラインの表示を切り替えることができます。

完全な結果を表示する

ノードの値としてノードのコンテンツ全体を表示します。

出力内にヘッダーを表示する

XML ファイルと XPath 式のロケーションを表示します。

 

 

(C) 2015-2021 Altova GmbH