About Saxon-CE
XSLT 1.0 has been available in most desktop browsers for some years. The Saxonica web site uses it: content is delivered in XML, and transformed by the browser's built-in XSLT 1.0 processor into HTML for display on the screen.
However, XSLT 1.0 in the browser has not been a great success, for several reasons:
-
It has been slow coming; until recently, there were important browsers that did not support it. Today, new devices such as smartphones are appearing whose browsers do not include XSLT 1.0 support.
-
Browser vendors have failed to upgrade their processors to XSLT 2.0. The 1.0 language is nearly 12 years old and its limitations are well known; most of them are remedied in XSLT 2.0, which offers vastly greater capability and productivity.
-
There are minor niggling differences between implementations, such as the lack of support for the namespace axis in Firefox, the treatment of whitespace by Microsoft, and the lack of support until recently for the
document()
function in Opera. -
Perhaps most significantly, the web has moved on since XSLT was first introduced in 1999. In those days it was mainly about displaying static content and supporting navigation via hyperlinks. The main purpose of XSLT in the browser was to provide device independence. Many of the original problems which XSLT aimed to address are today adequately solved by CSS, while in the meantime web pages have become dynamic and interactive in a way that is beyond the original conception for XSLT.
-
Browser vendors, anxious to achieve market share more than anything else, have focused on the most popular technologies and have let other technologies languish despite their strategic potential. At the same time they have failed to provide an open platform where third-party implementors can deliver alternative tools and languages with satisfactory quality.
Saxon-CE aims to remedy this situation.
Saxon-CE has become possible first because JavaScript implementations have been improving dramatically, and secondly because Google's GWT (Google Web Toolkit) has made it possible for substantial Java applications like Saxon to be cross-compiled into JavaScript for execution within the browser.
Saxon-CE is not simply an XSLT 2.0 processor running in the browser, doing the kind of things that an XSLT 1.0 processor did, but with more language features (though that in itself is a great step forward). It also takes XSLT into the world of interactive programming. With Saxon-CE it's not just a question of translating XML into HTML-plus-JavaScript and then doing all the interesting user interaction in the JavaScript; instead, user input and interaction is handled directly within the XSLT code.
XSLT is ideally suited for this role. It's a language whose basic approach is to define rules that respond to events by constructing XML or HTML content. It's a natural extension of the language to make template rules respond to input events rather than only to parsing events. The functional and declarative nature of the language makes it ideally suited to this role, eliminating many of the bugs that plague JavaScript development.
Saxon-CE reached its first production release (1.0) in June 2012, following on from two earlier public beta releases. The current release (1.1) is dated February 2013, and the main change is that the product is now released under an open source license (Mozilla Public License 2.0).
The Saxon software has an enviable reputation as the leading XSLT processor: its performance, reliability, conformance, and pace of innovation are second to none. Saxon-CE builds on this history.