Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Saxon XSLT
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
'''Saxon''' is an [[XSLT]] and [[XQuery]] processor created by [[Michael Howard Kay|Michael Kay]] and now developed and maintained by the company he founded, Saxonica. There are [[open-source software|open-source]] and also [[proprietary software|closed-source]] commercial versions. Versions exist for [[Java (programming language)|Java]], [[JavaScript]]<ref>{{cite web|title=Saxon Client Edition 1.0|url=http://www.saxonica.com/welcome/welcome.xml|publisher=Saxonica|accessdate=14 August 2012}}</ref> and [[.NET Framework|.NET]]. The current version, as of September 2024, is 12.5.<ref>{{Cite web|url=https://www.saxonica.com/index.html|title=Saxonica: XSLT and XQuery Processing|website=www.saxonica.com}}</ref> == Versions == The original development line of Saxon ended with the version 6 series. This is a series of XSLT 1.0 processors. The current version, 6.5.5, is not undergoing further development aside from maintenance. The 6 series is only available for the Java programming language. The current development line, Saxon 12, implements the XSLT 3.0 and XQuery 3.1 specifications. Saxon 12 can process XSLT 1.0 and XSLT 2.0 stylesheets. (XSLT 2.0 and 3.0 are highly backwards compatible with XSLT 1.0.<ref>This Recommendation builds on the success of [XSLT 1.0], which was published on 16 November 1999. Many new features have been added to the language (see J.2 New Functionality) while retaining a high level of backwards compatibility. [http://www.w3.org/TR/xslt20/ XSL Transformations (XSLT) Version 2.0]</ref>) and also includes selective support for the proposed XSLT 4.0 specification.<ref>[https://qt4cg.org/specifications/xslt-40/ XSL Transformations (XSLT) Version 4.0.]</ref> There are two separate source bases: the Java source, and the JavaScript source. The Java source is used to generate products for three platforms: SaxonJ (for Java and other JVM languages such as Scala), SaxonCS (for C# and other .NET languages such as VB.NET), and SaxonC (with APIs for C, C++, Python, and PHP). The JavaScript source base is used to generate SaxonJS, which runs in Web browsers and under Node.js. The Java-built versions come in three levels: Home Edition offers the minimal level of standards conformance defined in the specifications, as an open-source product. Professional Edition adds vendor-specific functionality not required by the standards, for example a range of extension functions and serialisation options. Enterprise Edition adds advanced features (defined in the W3C standards as optional) including schema-awareness and streaming, as well as performance-related features such as multi-threaded execution and bytecode generation. The SaxonCS product is built from the Java source base by means of a custom Java-to-C# [[Source-to-source_compiler|transpiler]] written in XSLT (see [https://markupuk.org/webhelp/index.html#ar04.html ] {{Webarchive|url=https://web.archive.org/web/20220610095817/https://markupuk.org/webhelp/index.html#ar04.html |date=2022-06-10 }}). As of April 2022, only the Enterprise Edition is offered on this platform. From 2004 until 2009, Saxon was available into two separate forms: Saxon-B and Saxon-SA. Both of these were built on similar codebases. Saxon-B was [[open-source license|open-source]] software released under the [[Mozilla Public License]], while Saxon-SA was a closed-source commercial product. The difference between Saxon-B and Saxon-SA was that B was "basic" while SA was "schema-aware". These terms are references to terms in the XSLT 2.0 and XQuery 1.0 specification. A processor that is "schema-aware" is able to use a [[XML Schema (W3C)|W3C XML Schema]] to define the data types of the various elements in the source XML document(s). These data types can then be used in [[XPath]] 2.0 and XSLT 2.0 commands. A "basic" XSLT 2.0 processor is unable to use data typing information. Saxon offers strict conformance to the XSLT 2.0, XPath 2.0 and 3.0, and XQuery 1.0 and 3.0 W3C Recommendations, and also implements XML Schema 1.0 and 1.1. As of 2021 the current version (10.6) conforms with the W3C Recommendations for XSLT 3.0, XPath 3.1, and XQuery 3.1. The Saxon source code is written in Java. During 2005-6, M. David Peterson and others demonstrated that Saxon could be cross-compiled to run on .NET using the [[IKVM]] cross-compiler, launching Saxon.NET as a separate product independent of the original developer. With the release of Saxon 8.7, Saxonica adopted this technology and from that release onwards, all versions have been released simultaneously for Java and .NET. The .NET version of the product omits features that are specific to the Java platform (such as integration with [[JDOM]], [[Dom4j]], and [[XML Object Model|XOM]]) and instead provides features that integrate with the XML processing capabilities of the .NET platform. In 2012, following a series of prototypes, Saxonica released Saxon Client Edition (Saxon-CE), a version of the product adapted to run within the browser environment. This is achieved by adapting the Java source code so that it can be cross-compiled to JavaScript using the [[Google Web Toolkit|GWT]] cross-compiler produced by [[Google]]. Saxon-CE provides the first implementation of XSLT 2.0 running on the browser, and also extends the language so that rather than merely generating HTML, it can directly handle user interaction. With the release of Saxon-CE 1.1 in February 2013, the product became open source. In February 2016 Michael Kay announced that Saxonica was working on a replacement for Saxon-CE written in pure JavaScript, and dubbed Saxon-JS.<ref>{{Cite web|url=http://dev.saxonica.com/blog/mike/2016/02/introducing-saxon-js.html|title = Introducing Saxon-JS}}</ref> [[Michael Howard Kay|Michael Kay]], the author of Saxon, was the editor of the XSLT 2.0 specification and is also editor of the XSLT 3.0 draft. == Features == The Saxon versions that are available for the Java, C (including PHP and Python), and .NET platforms are built from a single codebase. The latter version is built using a [[Source-to-source compiler|transpiler]].<ref>{{Cite web| title=Markup UK | url=https://www.saxonica.com/papers/markupuk-2021mhk.pdf | archive-url=https://web.archive.org/web/20210918133210/https://www.saxonica.com/papers/markupuk-2021mhk.pdf | archive-date=2021-09-18}}</ref> All technology platform versions share the same capabilities, and they are made available with three different feature sets under two different licensing conditions. For each of these technology platforms, there is an open-source product, Saxon-HE, that is licensed under [[Mozilla Public License|MPL]]-2.0. It provides basic XSLT 3.0, XPath 3.1, and XQuery 3.1 functionality, as defined by the respective specifications. In addition, Saxon-HE implements certain features that the XSLT 3.0 specification declares as optional and that were previously reserved for the commercial versions, such as dynamic XPath 3.1 evaluation and higher-order functions in XSLT 3.0. The commercial versions are called Saxon-PE and Saxon-EE. A detailed and up-to-date feature matrix can be found on [https://www.saxonica.com/products/feature-matrix-11.xml the Saxonica web site]. The fourth technology platform is JavaScript. Previously the open-source XSLT processor Saxon-CE was cross-compiled from the common Java source using [[Google Web Toolkit|GWT]]. SaxonJS is a completely new implementation in JavaScript. The XSLT sources can either be compiled using Saxon-EE or using a built-in XSLT-based XSLT compiler, which creates less optimized code. On the other hand, the XSLT-based XSLT compiler allows dynamic compilation and execution of XSLT. While SaxonJS supports most of the XSLT 3.0 and XPath 3.1 features available in Saxon-HE, SaxonJS does not support XQuery. In contrast to Saxon-HE and the discontinued Saxon-CE, SaxonJS is not open source, but it can be used for free in the browser or in [[Node.js]].<ref>{{cite web | url=https://www.saxonica.com/saxon-js/documentation2/index.html#!conditions | title=SaxonJS Documentation }}</ref> == See also == * [[libxml2]]/[[Libxslt]] (competitor) * [[Xalan]] (competitor) == References == <references /> == External links == * [http://saxon.sourceforge.net/ Saxon-B homepage] * [http://www.saxonica.com/ Saxonica homepage], for Saxon-SA * [http://www.stylusstudio.com/saxon_xquery_processor.html Saxon XQuery Tools] * [https://www.data2type.de/en/software/antillesxml/ AntillesXML (GUI for Saxon)] * [http://www.data2type.de/xml-xslt-xslfo/xslt/xslt-prozessoren-fuer-xslt-2/saxon-9/ description of Saxon] (German) [[Category:Free system software]] [[Category:Java platform]] [[Category:XQuery processors]] [[Category:XSLT processors]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cite web
(
edit
)
Template:Webarchive
(
edit
)