---
title: XSLTとXQueryのデバッグ方法
date: 2022-04-13
categories:
  - development
  - software
  - xml
tags:
  - data-mapping
  - xml-editor
  - xmlspy
  - xquery
  - xslt
description: 動画デモ：XSLT/XQueryのバックマッピングが、出力結果を生成するソースXMLとXSLT/XQueryの指示をハイライト表示することで、XSLTとXQueryのデバッグを容易にする方法をご覧ください。
---
Status: #blog

Tags:  #data-mapping #xml-editor #xmlspy #xquery #xslt

Categories: [development](/blog/ja/category/development.md) | [xsl](/blog/ja/category/xsl.md) | [xpath+xquery](/blog/ja/category/xpathxquery.md)
# XSLTとXQueryのデバッグ方法

XSLTやXQueryの変換で意図しない結果が出た場合、その原因を突き止めるために何時間も費やさなければならないのは、本当に困りものです。特に、他の開発者からプロジェクトを引き継いだ場合や、数ヶ月コードを見ていない場合はなおさらです。もちろん、XMLSpyには長年、そのような問題を解決するための機能が搭載されています [XSLT デバッガー](https://www.altova.com/ja/xmlspy-xml-editor#xslt_debugger) そして [XQuery デバッガー](https://www.altova.com/ja/xmlspy-xml-editor#xquery_debug) 問題の特定のために、ブレークポイントを設定し、処理をステップごとに実行することができます。

よりインタラクティブなデバッグ処理のために、XMLSpyには、[XSLT/XQueryの逆変換機能](https://www.altova.com/ja/xmlspy-xml-editor#xslt_back-mapping)も搭載されています。

バックマッピング機能を有効にすると、出力ドキュメントの特定の部分をクリックするか、マウスカーソルを合わせるだけで、XMLSpyが対応するソースXMLおよびXSLTまたはXQueryのコードをすぐにハイライト表示します。具体的な動作を確認してみましょう。

![XSLTのデバッグを、逆マッピング機能を使って行う ](/blog/images/v2017R3_backmapping.jpg)

<!--more-->

## XSLTとXQueryのデバッグ：バックマッピングによる方法

XSLTやXQueryのドキュメントは、しばしば長くて複雑であるため、意図しない出力の原因を特定することが困難になる場合があります。ピンポイントでのデバッグを行う場合、バックマッピングを使用することで、出力に影響を与えているノードや命令をすぐに確認でき、原因究明が容易になります。

バックマッピング機能を有効にすると、XSLT変換やXQuery実行が行われ、その結果として得られたドキュメントが、元のXSLT+XMLまたはXQuery+XMLドキュメントにマッピングされます。結果ドキュメントの特定の箇所にマウスカーソルを合わせると、その結果ノードに対応するXSLT/XQueryの指示と、XMLのソースデータが強調表示されます。

一度試してみましょう。XSLTまたはXQueryによる変換を開始する前に、XMLSpyのツールバーにある「バックマッピングを有効にする」ボタンをクリックしてください。

![XQueryのバックマッピングを用いたデバッグ](/blog/images/debug-xquery-backmapping.png)

XMLSpyでは、ソースドキュメントと出力ドキュメントを並べて表示するオプションが提供されており、関連する要素を一つのウィンドウで簡単に確認できます。その後、変換を実行してください。

以下に示すXSLT変換の例では、ブラウザ表示で出力ドキュメント内のラジオボタンの一つにマウスカーソルを合わせたところ、XMLSpyが自動的にXMLおよびXSLTドキュメント内の対応するノードと指示を強調表示しました。

![XSLTのデバッグを、逆マッピング機能を使って行う](/blog/images/debug-xslt-back-mapping.png)

XSLTやXQueryの出力結果をテキスト表示で確認する場合も、基本的な操作は同じです。分析したい出力ドキュメントの該当部分を選択するだけです。

XSLTやXQueryのコードのテストやデバッグにおいて、出力結果を簡単にクリックしてそのソースを特定できる機能は、非常に時間短縮に繋がります。何よりも素晴らしいのは、**XMLSpyが、出力ドキュメントを一切変更することなく、[逆マッピング](https://www.altova.com/ja/xmlspy-xml-editor#xslt_back-mapping)を実現できる点です。**

この短い動画で、XSLTとXQueryの両方でこの機能がどのように動作するかを確認できます。

![](https://www.youtube.com/watch?v=lK1EDLbxxyo)
