Using an XSLT debugger

If you do a lot of stylesheet customization, investing time and money in an XSLT debugger might be worthwhile. Several XSLT debuggers are available that let you trace through your stylesheet processing to quickly find the source of a problem. Here is a sample of what is available.

Komodo

Komodo is a commercial product from ActiveState. It is a multilanguage IDE for Linux or Windows that includes support for XSLT debugging.

oXygen

oXygen is a commercial product from SyncRO Soft Ltd. It is a graphical XML editor and XSLT debugger. It is written in Java, so it runs on all platforms.

Stylus Studio

Stylus Studio is a commercial product from Sonic Software. It is a complete XML authoring environment for Windows, including a graphical XSLT debugger.

WebSphere Studio Application Developer

WebSphere Studio Application Developer is a commercial product from IBM. It is a multilanguage IDE for Linux or Windows that includes support for XSLT debugging.

XMLSpy

XMLSpy is a commercial product from Altova. It is a complete graphical XML development environment that includes an XSLT debugger.

XSLT-process

XSLT-process is a minor mode for GNU Emacs/XEmacs which gives it XSLT processing and debugging capabilities.

Before committing serious money to one of these debuggers, make sure it will work with the DocBook XSL stylesheets. The DocBook stylesheets exercise most of the XSLT spec, so a debugger has to be highly conformant. For example, Stylus Studio's default XSLT processor does not handle DocBook, but you can instead select the Saxon processor in Stylus Studio and it does work.

Also check for support for XSL extensions. DocBook XSL makes use of two kinds: EXSLT extensions and Java extensions. For example, the chunk.xsl stylesheet must use an XSL extension function to generate multiple output files from a single input file. Saxon and Xalan each have such a function, and other processors can use the EXSLT document() function. If a debugger does not support one of these extensions, then you cannot debug the chunking process. For example, any debugger based on MSXML will not work for chunking because it does not support Java or EXSLT extensions.