Saxonica: XSLT and XQuery Processing: About Saxon-CE

About Saxon-CE

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:

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 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.