🧩 Debugging XSLT Made Easy in VS Code



This content originally appeared on DEV Community and was authored by Daniel Jonathan

Debugging XSLT has always been a challenge β€” especially when you’re trying to understand why a transformation doesn’t behave as expected. That’s why I built XSLT Debugger, a Visual Studio Code extension that brings real debugging support for XSLT stylesheets.

🚀 What It Does

This extension lets you:

  • Set breakpoints in .xslt files
  • Step through transformations
  • Inspect variables and node values
  • Evaluate XPath expressions interactively
  • Even run inline C# scripting with msxsl:script is supported but step through are skipped.

It supports both XSLT 1.0 and 2.0/3.0 stylesheets β€” using a .NET-based debug adapter under the hood.

⚙ Getting Started

  1. Install XSLT Debugger from the VS Code Marketplace
  2. Update the vscode launch setting
  3. Open your .xslt and .xml files
  4. Press F5 β†’ Start Debugging

That’s it β€” you can now set breakpoints, run step-by-step, and finally see what’s happening in your transformations.

🧩 Why It Matters

This project brings XSLT debugging into the modern developer workflow β€” something that’s been missing for years.

Whether you’re maintaining legacy integrations or working with XML transformations in Azure Logic Apps, this extension finally makes it debuggable.

⚠ Current Limitations

The debugger is designed to stay simple and stable, without attempting to fully parse complex XSLT constructs.

To keep it lightweight and predictable:

  • Breakpoint and step debugging are currently limited to basic XSLT structures (templates, loops, and expressions). Deep or dynamic template calls are intentionally not instrumented to avoid complex XSLT parsing.
  • Variable inspection covers @select-based variables; content-defined variables are skipped for now.
  • Trace logging introduces minor runtime overhead (up to ~15% in traceall mode).

These tradeoffs ensure reliable, cross-platform debugging without slowing down transformations or overcomplicating the runtime.

🧩 Note: This is a complementary developer tool intended for debugging and learning β€” not a production-grade runtime.

👉 VS Code Marketplace Windows x64

👉 VS Code Marketplace MacOS arm

Built with ❤ to make XSLT development less mysterious and more productive.


This content originally appeared on DEV Community and was authored by Daniel Jonathan