Saxonica: XSLT and XQuery Processing: Tools


Saxon-CE, at its core, is a standard XSLT 2.0 processor. A wide range of tools of free and commercial tools are therefore already available to assist you in developing XSLT for Saxon-CE. However, because Saxon-CE runs within the browser, other tools will also be important: these are explored here.

Web Server

In most cases, it's recommended that you use the HTTP protocol to access your resource files (XSLT, XML, HTML, CSS etc) from the browser. (Using the file system with file:// URLs is possible, but only if you change security and other settings in the browser, so we don't recommend it.) Resource files, and Saxon-CE, will therefore be hosted by a web-server — either on your local machine or a remote server. You will need to ensure that you have the necessary read/write permission, and that your editor can perform updates properly, perhaps via the file-system or FTP etc.

The choice of web server is down to individual circumstances. The majority of Operating System distributions include a web server (even on desktop systems - though it's not always advertised) that simply needs enabling, but excellent online options are also available.

Web Browser

The browser hosts Saxon-CE and, in many cases, renders HTML output from Saxon-CE's XSLT processor directly to the current page; all modern browsers are well suited to this role. From the development perspective, one of the most important parts of the browser (apart from developer tools which we cover later) is how resource files are cached and how easy it is to reliably refresh the cache when needed. It can be very time-consuming if you still see the manifestation of a bug after it was fixed, simply because a stale cached resource file is being used. It may also be productive to configure your web server to include 'no-cache' instructions within the HTTP header.

Saxon-CE makes every effort to minimise differences between browsers, but when testing you will need to test on all your target browsers; even at the development stage, it's a good idea to switch browsers frequently so any issues are picked up early.

Browser Developer Tools

All modern browsers come with built-in developer tools, and these can often be supplemented with plug-ins available online. Saxon-CE directs errors, timing and diagnostics messages to these tools when they're detected. Different logging thresholds can be set for Saxon-CE by adding a logLevel query parameter to the host page URL. The logging and tracing sections provide more details.


Using a wide range of loosely-coupled tools can sometimes be a very effective method for developing Saxon-CE based applications, but there will be times when more integration between tools can aid productivity. Saxon-CE interfaces have been designed to support such integration.

One tool at least, XMLQuire, is already publicly available that was extended specifically to exploit Saxon-CE interfaces — the emphasis here was on evaluating concepts whilst still providing benefits. Its features include:

It is hoped that further tools will become available from third parties in due course.

Test Tools

The extensive range of currently available XSLT and web-specific test tools (including those for mobile/tablet devices) will be applicable also to Saxon-CE. Other tools, with capabilities enhanced for Saxon-CE will hopefully also become available in a short while.

The test-driver (for Saxonica's internal use) for Saxon-CE's own test suite runs in any browser and is actually coded in XSLT 2.0. It therefore exploits Saxon-CE's XSLT/JavaScript interoperability and JavaScript API to initiate each XSLT test case from within the XSLT.

Future Online Tools

As the capabilties of browsers have increased, and with the onset of HTML5, more development work has moved online. With Saxon-CE's JavaScript API, there's good potential for a variety of specialist tools for editing, analysing and testing XSLT 2.0 for Saxon-CE.