XSLT 1.0 has been available in most desktop browsers for some years. This 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
Saxon-CE aims to remedy this situation.
dramatically, and secondly because Google's GWT (Google Web Toolkit) has made it possible
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
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
Saxon-CE has now reached its first production release, following on from two earlier
public beta releases. Future plans include improved alignment with XForms and additional
support for specific HTML5 features, as these are adopted by browsers.
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.