XMLSpy enthält einen XQuery Debugger zum Testen und Perfektionieren Ihres XQuery-Codes. Zum Analysieren der Ergebnisse großer, komplexer XQuery-Dokumente. anhand von XML-Datenbanken auf einem Server könnten Sie mit dem XQuery Debugger im Vollbildmodus arbeiten. Zum Entwickeln kurzer XQuery-Ausdrücke und -Funktionen eignet sich das XQuery Debugger-Fenster besser.
Der intuitive Debugger bietet eine aus mehreren Fenstern bestehende Benutzeroberfläche, in denen das XQuery-Dokument, das XML- oder JSON-Quelldokument (optional) und der aktuelle XQuery-Prozessor-Kontext angezeigt werden. Unterhalb davon befinden sich die Fenster "Variablen" und "Callstack" mit mehreren Registerkarten, auf denen alle nötigen Debugging-Informationen angezeigt werden.
Sie haben auch die Möglichkeit, an jedem Node im XML-Instanzdokument Breakpoints zu setzen, sodass der Debugger immer dann anhält, wenn er auf einen bestimmten Node zugreift, bzw. eine bestimmte Anweisung verarbeitet. Dadurch können Sie den Code schneller debuggen, da Sie die Anweisungen nicht einzeln manuell durchgehen müssen. Über das Dialogfeld "XQuery Breakpoints" können Sie außerdem eine Liste aller definierten Breakpoins anzeigen und verwalten.
Sobald Sie auf das Symbol zum Starten des Debuggers klicken, hält der XQuery-Prozessor am ersten Breakpoint an und zeigt den Teil der Ausgabe an, der sich auf den Kontext des XQuery-Prozessors an dieser Stelle des Dokuments bezieht. Der Debugger markiert den aktuellen Node in der XML-Datei sowie die aktuelle Anweisung im XQuery-Dokument. Alle Variablen, xpath-watch-Werte und call stack-Daten, die sich darauf beziehen, werden in den Info-Fenstern des Debuggers angezeigt.
Dank der Möglichkeit, den jeweiligen XML- oder JSON-Daten-Node, die XQuery-Anweisung und das erzeugte Ergebnis gleichzeitig nebeneinander zu sehen, sehen Sie auf einen Blick, wie Ihr XQuery-Dokument die Daten verarbeitet. Während der Debugger geöffnet ist, können Sie jederzeit mit Hilfe der intelligenten Editierfeatures von XMLSpy Änderungen an Ihrem Instanz- und/oder XQuery-Dokument vornehmen.
Das XPath/XQuery Debugger-Fenster ist Teil des XPath/XQuery-Registers am unteren Rand des XMLSpy-Fensters. Es eignet sich perfekt zum Debuggen kurzer XQuery-Fragmente, um sofort interaktives Feedback zu erhalten. Da sich der Debugger im selben Fenster wie der XQuery-Editor befindet, können Sie Ihren Code, während Sie ihn mittels Eingabevorschlägen, Eingabehilfen und fertigen Codefragmenten usw. erstellen, debuggen.
Dabei können Sie je nach Länge des XQuery-Codes jederzeit zwischen dem vertikalen oder horizontalen Layout des Fensters wechseln.
Eine weitere Methode ist das XQuery-Rückwärts-Mapping. Beim Rückwärts-Mapping in XMLSpz klicken Sie einfach im XQuery-Ausgabedokument auf einen Node und Sie sehen sofort den XML/JSON-Quellnode und den XQuery-Ausdruck dazu.
Bei Aktivierung der Rückwärts-Mapping-Schaltfläche in der Symbolleiste werden XQuery-Ausführungen so ausgeführt, dass das Ergebnisdokument zurück auf das XQuery+XML- oder XQuery+JSON-Ursprungsdokument gemappt werden kann. Wenn Sie also auf einen Node im Ergebnisdokument klicken, werden die dazugehörige XQuery-Anweisung und die Quelldaten, anhand welcher der jeweilige Node generiert wurde, für das sofortige Debuggen markiert.
Damit sparen Entwickler viel Zeit beim Analysieren und Perfektionieren von Code. Außerdem nimmt XMLSpy beim XQuery-Rückwärts-Mapping keine Änderungen am Ausgabecode vor.
Für die weitere Analyse der Code-Verarbeitung bietet XMLSpy den XQuery Profiler, der die Verarbeitungsdauer der einzelnen Anweisungen genau überwacht und aufzeichnet und Ihnen dabei hilft, Engpässe ausfindig zu machen und zu eliminieren.
Der XQuery Profiler bietet Optionen zum Überwachen einer Transformation auf Basis eines Callgraph oder einer Trefferquote. Bei Ausführung einer XQuery-Datei in XMLSpy zeigt der XQuery Profiler genaue Daten zur Trefferquote, Dauer und Verarbeitungsdauer der untergeordneten Nodes an. Wenn Sie auf ein im Profiler-Fenster aufgelistetes Element klicken, wird automatisch das dazugehörige XQuery-Dokument geöffnet und das jeweilige Element markiert, sodass Sie Flaschenhälse bei der Verarbeitung mit einem einzigen Klick ausfindig machen können.