Manual

1 — The interface

Debug XML Tool fits in a single window, organised into five fixed areas. This chapter describes them one by one: what they hold, what makes them appear, and how to rearrange them.

None of these areas opens from a menu: they react to what you do.


1.1 The five areas

┌──────────────────────────────────────────────────────────────────────┐
│  Toolbar                                     ⚙   [IDLE]  message     │
├───────────────┬──────────────────────────────────┬───────────────────┤
│               │                                  │                   │
│   Explorer    │            Editor                │    Structure      │
│               │          (file tabs)             │   (active file)   │
│               │                                  │                   │
├───────────────┴──────────────────────────────────┴───────────────────┤
│  Bottom panel — 13 tabs (console, inspection, analysis, validation)   │
└──────────────────────────────────────────────────────────────────────┘
AreaContentsWhen it appears
Toolbarevery global command, the debugger statealways
Explorer (left)the workspace treeas soon as a workspace is open
Editor (centre)your files, one tab eachas soon as a file is open
Structure (right)the logical tree of the active filedepending on the type of the active file
Bottom panel13 inspection and analysis tabsalways

While no workspace is open, the central area shows the welcome screen: XSLT/XML Debugging IDE, the prompt « Open a workspace ( 📂 ) or drag and drop a folder here », and a reminder of the main shortcuts.


1.2 The toolbar

Every button is icon-only: hover over one to read its role and its shortcut. They read from left to right in four groups.

Workspace and files

ButtonRoleActive
New file (Ctrl+N)creates a file from a skeletonalways
Open workspace folderchooses the working folderalways
Close workspacecloses the folder and its tabsif a workspace is open

Transformation and debugging

ButtonRoleActive
Transformation scenariossaved configurations, re-run with one clickalways
Transformation settings (⚙)files, output format, parameters, entry pointalways
Run transformation (F5)runs — and stops on your breakpointsIDLE
Step Into (F11), Step Over (F10), Step Out (Shift+F11)steppingPAUSED
Run to cursor (Ctrl+F10)resumes and stops at the cursor linePAUSED
Resume execution (F8)resumes until the next breakpointPAUSED
Stop execution (Shift+F9)interrupts the sessionRUNNING or PAUSED

The six debugging commands are greyed out outside a pause. This is deliberate: whether they are enabled tells you on its own where execution stands.

Tools

ButtonRoleActive
Validate active filevalidation on demand of the open filealways
Validate an XML against a schema (XSD or DTD)opens a menu: validate against an XSD, a DTD, or associate onealways — greyed out while a validation runs
Format document (Shift+Alt+F)re-indents the active filealways
Compare two files (structural XML diff)structural comparisonalways
Run with Saxon Profilermeasures time per templateIDLE

State — at the right of the bar

Two pieces of information, side by side, at the far right:

  • the state badgeIDLE, RUNNING or PAUSED;
  • a status message, which repeats the last significant action: No workspace open, XML source set: input.xml, Finished in 136 ms, or an error message.

This is where configuration diagnostics appear — not in the console. If a run produces nothing, look at this message first.

The Language selector and the Settings button occupy the end of the bar (§1.8).


1.3 The explorer

The explorer shows the tree of your workspace, filtered: only the files that concern the tool appear (.xml, .xsl, .xslt, .xsd, .dtd, .xspec…), each with an icon of its own type. Your images, your scripts and your hidden folders do not clutter it.

  • Double-click a file: it opens in a tab.
  • Right-click: the context menu, which gathers most of the per-file actions.

The menu adapts to what you pointed at:

On a fileOn a folderOn empty space
OpenNew file…Validate workspace
Set as XML source (.xml)New folder…
Set as main XSL (.xsl/.xslt)Validate folder
Compare with…Delete
Hierarchy/dependencies (.xsl, .xslt, .xsd)
Use as XML catalog (.xml)
Run XSpec tests (.xspec)
Generate XSpec skeleton (.xsl/.xslt)
Delete

Deletion asks for confirmation — « Permanently delete "…"? This action cannot be undone. » — and really does act on the disk.

While no workspace is open, the explorer shows No workspace open — open a folder to get started.


1.4 The editor

Each open file takes a tab. The active tab determines a great deal: the contents of the structure panel, the target of the Validate button, of the Format button, and — failing an explicit configuration — the stylesheet that F5 runs.

Three things to spot:

  • the gutter (to the left of the line numbers) takes your breakpoints with a single click;
  • the dot « • » before a tab name signals unsaved changes. It disappears on saving — and also if you undo all your changes: it reflects the real difference from the file on disk, not the fact of having typed;
  • the wavy underlines signal errors detected as you type (chapter Editing).

1.5 The structure panel

The right-hand panel shows the logical tree of the active file. Its contents depend on the file type, and it switches automatically when you change tab:

Active filePanelContents
.xmlXML STRUCTUREthe tree of the document nodes
.xsdXSD STRUCTUREthe schema tree: sequences, choices, types
.xsl / .xsltXSL STRUCTUREthe outline of the stylesheet

A stylesheet outline is grouped by category, each with its count: Match templates, Named templates, Functions, Variables / params, Keys, Modules. The match templates show their pattern, their mode and their priority.

Double-click an entry: the matching name is selected in the editor.

Two behaviours worth knowing:

  • a stylesheet outline follows your edits live, without saving — add a template and it appears within the second;
  • the XML STRUCTURE and XSD STRUCTURE views are built when the file is opened or when the tab changes: switch tab and come back to rebuild them;
  • a malformed file gives Malformed XML — structure unavailable. A stylesheet with no top-level declaration gives No top-level declarations.

The in the header hides the panel; it comes back with the next file.

Only global variables and parameters appear in the outline. Variables local to a template are deliberately absent from it.


1.6 The bottom panel

Thirteen tabs, icon-only: hover to read their names.

TabWhat it showsChapter
Consolemessages, errors, transformation trace§1.7
VariablesXSLT variables and current node at the pauseDebugging
XPath Evaluatorevaluation of XPath expressionsDebugging
Call Stackchain of templates up to the breakpointDebugging
Watch XPathexpressions re-evaluated at every pauseDebugging
Profilertime per template, hot spots, call treeAnalysing
Templatestemplates declared, fired or notAnalysing
Searchsearch and replace across the whole workspaceNavigating & refactoring
Referencesuses of an XSLT symbolNavigating & refactoring
Hierarchygraph of xsl:include / xsl:importNavigating & refactoring
Problemsresults of a batch validationValidating & comparing
Comparisondifferences between two filesValidating & comparing
XSpecresults of XSLT unit testsValidating & comparing

An empty panel always tells you what will fill it rather than staying silent: Run the profiler (⏱) to analyze performance., Right-click a folder in the explorer to validate it, No variables — the debugger is not paused.

Detaching a panel

The bottom panel is wide but not tall — which suits a console, less so a call tree. Any tab can be moved to the right-hand column, where it gains height:

  1. Right-click the tab;
  2. Detach to right.

The detached panel takes a header with its name and a button to send it back. Reattach to bottom puts it back in place.

Only one panel can be detached at a time. If you detach a second one, the first returns to the bottom automatically and a fleeting message tells you so — « … was automatically reattached to the bottom ». Nothing is lost, nothing overlaps.


1.7 The console

First tab of the bottom panel, under the LOCAL header. It receives:

  • the xsl:message messages from your stylesheets, as execution proceeds;
  • the trace of each transformation: files used, format, duration;
  • auto-configuration decisions, prefixed [Auto-config];
  • errors, prefixed [ERROR].

Two buttons in its bar: Clear console and Copy all. A third collapses or expands it to free space for the editor.

Right-clicking in the console offers Copy (the selection), Select all and Clear.

The console traces what the engine does. Configuration errors — no XSLT designated, no XML in the workspace — appear instead in the status message on the toolbar (§1.2).


1.8 Adapting the interface

The Settings button (the last icon on the toolbar) opens a menu in three sections.

SectionSettingEffect
AppearanceThemeDark or Light — applies immediately, editor included
AppearanceLanguageFrench, English, Spanish, Russian, Chinese — without restarting
AppearanceFont Sizealso Ctrl + +, Ctrl + −, Ctrl + 0 (back to the default size)
EditorWord Wrapfolds long lines
EditorMinimapminiature preview of the file to the right of the editor
EditorHighlight Current Linebrings out the cursor line
PreferencesLive validationswitches on or off the detection of errors as you type
PreferencesOutput back-mappinglets you jump from the output back to the instruction that produced it
PreferencesXML Catalogs…resolution of public/system identifiers

Changing language and theme is instant and two-way: the whole interface follows, including the texts of empty panels and the editor.


1.9 What the application remembers

From one session to the next, without asking you anything:

RememberedScope
The last workspace openedapplication
The size and position of the windowapplication
Theme, language, font sizeapplication
Live validation, back-mappingapplication
Your transformation scenariosworkspace
Your watch expressions (Watch XPath)workspace
The XML file ↔ schema associationsworkspace
The XML catalogues declaredworkspace

Two different workspaces therefore have their own scenarios, their own watches and their own catalogues — without interference.


What next

Manual contents