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 sometimes 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.
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.
IDE
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:
-
Automated browser-cache refresh on updates made by the editor
-
Displaying Saxon-CE diagnostics output within the editor - in real-time
-
Highlighting compile-time errors in the XSLT code editor
-
Switching logging level from the editor
-
Auto-creation of new Saxon-CE projects based on project templates
-
Auto-completion/validation of HTML literal result elements within XSLT
-
Whitespace minimisation within the editor
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.