{"head":{"this-is":{"@attributes":{"section":"products","page":"index","folder":"saxonjs","subpage":""}},"title":"Saxonica: SaxonJS product information","meta":[{"@attributes":{"name":"title","content":"Saxonica: SaxonJS product information"}},{"@attributes":{"http-equiv":"Content-Type","content":"text\/html; charset=iso-8859-1"}},{"@attributes":{"name":"description","content":""}},{"@attributes":{"name":"keywords","content":"XSLT, XQuery, XPath, Processor, XSD Schema, Saxonica, license, validator, XML, Saxon, EXPath, JavaScript"}},{"@attributes":{"name":"coverage","content":"Worldwide"}},{"@attributes":{"name":"copyright","content":"Copyright Saxonica Ltd"}},{"@attributes":{"name":"robots","content":"index, follow"}}]},"body":{"@attributes":{"class":"main"},"h1":"SaxonJS","div":{"@attributes":{"id":"fixed-aside"},"h2":["On this page:","See also:"],"ul":[{"li":[{"a":"What's new in SaxonJS 3?"},{"a":"What's new in SaxonJS 2?"},{"a":"Releases"},{"a":"Documentation"},{"a":"Sample applications"},{"a":"License"},{"a":"Installation"},{"a":"Support"},{"a":"Saxon-EE compatibility"}]},{"li":[{"a":"Download page"},{"a":"Release notes"},{"a":"Archive page for SaxonJS 1 information"}]}]},"p":[{"b":"SaxonJS is a high-performance XSLT 3.0 processor that runs either in the browser, or\n                on Node.js. It conforms with the latest W3C specifications (notably XSLT 3.0 and\n                XPath 3.1), together with extensions designed to meet the needs of modern web\n                applications."},"SaxonJS works with JSON as well as XML, and is ideally suited for applications that need\n            to handle both.","And by offering both client-side and server-side capability, SaxonJS allows you to reuse\n            code between the two environments and deploy it in a flexible way for maximum\n            performance.","If you've used XSLT 1.0 and XPath 1.0 in the past, you'll find that the latest versions\n            of the standards open up a new world. They now offer much richer data manipulation\n            (grouping, regular expressions, date-and-time handling, URI manipulation), modern\n            programming constructs such as higher order functions, and support for data formats\n            other than XML, most notably JSON, plain text files, and HTML5. SaxonJS further extends\n            this capability with support for asynchronous HTTP requests and handling of user\n            interaction.","SaxonJS can be invoked either from the Node.js command line, or from JavaScript code\n            running either client-side or server-side. As well as allowing XSLT transformations to\n            be scheduled, the API allows direct invocation of XPath expressions against DOM Nodes,\n            allowing it to be used as a replacement for the aging XPath 1.0 engine bundled with the\n            JavaScript DOM. It also provides a standalone serializer allowing the results of queries\n            (whether coded in XPath or JavaScript) to be output as XML, HTML5, or JSON.","SaxonJS 3 is a major upgrade. The first beta releases in December 2024 and June 2025 are\n            preview releases of the free Home Edition product, available on Node.js and the browser.\n            An Enterprise Edition for Node.js with advanced features is also in the works.","The most significant changes are:","SaxonJS 2 is a major upgrade.","The most noticeable differences are:","There are many other enhancements. Some of the most important are:","Although SaxonJS now has its own XSLT compiler and XPath parser, it is still possible to\n            use it with code generated by the optimizing compiler in the Saxon-EE product.",{"b":"SaxonJS 3.0.0-beta2 released 2 June 2025, preview release for web browsers and Node.js."},"SaxonJS 3.0.0-beta1 released 18 December 2024, preview release for web browsers and Node.js.",{"b":"SaxonJS 2.7 released 17 October 2024, bug fixing maintenance release for web browsers and Node.js."},"SaxonJS 2.6 released 13 October 2023, bug fixing maintenance release for web browsers and Node.js.","SaxonJS 2.5 released 4 October 2022, bug fixing maintenance release for web browsers and Node.js.","SaxonJS 2.4 released 12 May 2022, bug fixing maintenance release for web browsers and Node.js.","SaxonJS 2.3 released 20 August 2021, bug fixing maintenance release for web browsers and Node.js.","SaxonJS 2.2 released 11 May 2021, bug fixing maintenance release for web browsers and Node.js.","SaxonJS 2.1 released 2 March 2021, bug fixing maintenance release for web browsers and Node.js.","SaxonJS 2.0 released 12 June 2020, for web browsers and Node.js.","For SaxonJS 2+, there are two XSLT-to-SEF (stylesheet export file) compilers available:\n            the XJ compiler in Saxon-EE 10+, and the XX compiler integrated into SaxonJS 2+ for\n            Node.js. XJ-compiled SEFs for SaxonJS 2 must be produced using Saxon-EE 10+, SEFs\n            produced by earlier versions of Saxon-EE will not work with SaxonJS 2. To use all latest\n            features for SaxonJS 3, XJ-compiled SEFs must be produced using Saxon-EE 12.5+.","For information on earlier releases, go to .","For detailed information on all SaxonJS releases, see the .","Full documentation is available for the latest versions of the product, SaxonJS 3 and 2,\n            containing information about the \n            capabilities of the product, the different product components for Node.js and browsers,\n            instructions for installing the product and writing applications, details of the API and\n            how to run from the Node command line, and sample applications:","The , presented at Declarative Amsterdam 2021, provides\n            a hands-on introduction to getting started with SaxonJS, with plenty of exercises and\n            code samples. Further examples of sample applications and demos are described in the \n            section of the SaxonJS documentation.",{"a":["LinkedDataHub","LinkedDataHub project\n                homepage"]},"SaxonJS is free of charge but not open source. Details of the license can be found in\n            the  section of the documentation.","For enterprise users who want additional support, Saxonica provides a subscription\n            service for an annual fee: see  in the Saxonica online store. As well as traditional\n            support, this provides access to source code, add-on development and debugging tools,\n            and (in due course) additional product functionality. Details of this service are\n            provided in the  (PDF).\n            Please contact us by email to  if you would\n            like more information.","SaxonJS for the browser is issued in the form of compressed JavaScript code that is\n            mounted on your web server to be fetched and executed from HTML pages running in a web\n            browser. The software is issued as a zip file that you will first need to unzip into\n            your chosen location (the relevant section of your web server filestore). See the  page of the documentation for more\n            details.","Run  to install SaxonJS 2 for Node.js, and  to install the command line interface. For further details see\n                 in the SaxonJS 2 documentation.","Run  to install SaxonJS 3 for Node.js, and  to install the command line interface. For further details see\n             in the SaxonJS 3 documentation.","Please use the help forums and bug trackers in the  at the\n            Saxonica community site if you need help or advice.","For more specialized advice, Saxonica may be able to offer consultancy.","The following table gives an overview of the compatibility between SaxonJS releases and\n            the Saxon-EE version used to generate SEFs.","In particular, note that from Saxon 10, SEFs generated for use with SaxonJS are in JSON\n            format, and require SaxonJS 2. Saxon 9.9 and earlier produce SEFs in XML format, which\n            will not work with SaxonJS 2.","If using Saxon 11, please use 11.3 or later, as a number of bugs in compiling to SEF were\n            fixed in the 11.3 maintenance release.","To be able to use all the new features of SaxonJS 3, SEFs must be produced with Saxon-EE\n            12.5 or later, specifying  on the command line. Note that the\n            preview release SaxonJS 3.0.0-beta1 only works with SEFs produced by Saxon-EE 12.5, and\n            does not work with SEFs produced by 12.6 or later. SaxonJS 3.0.0-beta2 works with SEFs\n            produced by Saxon-EE 12.6 or later.","\u25cf = all features of the SaxonJS release are available for SEFs generated by\n            this version of Saxon-EE.","* = SaxonJS can run SEFs generated by this Saxon-EE version, but not all of its features\n            will be available.","Otherwise, there is no guarantee that SEFs will work correctly with the SaxonJS\n            release."],"ul":[{"li":["In the , SaxonJS goes well beyond the traditional XSLT role of\n                converting static XML content to HTML pages. By means of interactive XSLT\n                extensions, it can deliver the rich user experience of a modern web application\n                without the need for low-level JavaScript coding.","On , SaxonJS provides the ideal vehicle for content publishing,\n                taking full advantage of the high performance architecture that is making Node.js\n                such a popular platform for sites that require high throughput and reliability."]},{"li":["On Node.js, SaxonJS 3 is available in two editions: Home and Enterprise. The\n                Enterprise Edition will provide advanced features, and requires a valid license.","The IXSL extensions for asynchronous processing have been updated to be more\n                promise-like; making this more extensible, and better integrated with JavaScript.","New APIs are introduced enabling extension functions to be defined in JavaScript\n                which can then be called directly from XPath."]},{"li":["It runs on Node.js as well as in the browser","It comes with its own XSLT compiler, rather than relying on stylesheets being\n                cross-compiled using the Java product"]},{"li":["Improved conformance with the latest W3C Recommendations: full support for all the\n                mandatory features and many of the optional features of XSLT 3.0 and XPath 3.1","Support for higher-order functions","Full implementation of the W3C Serialization standard","Performance improvements (in areas such as result tree building, pattern matching,\n                expression execution, and asynchronous resource access)","Support for natural-language collations"]},{"li":[{"a":"SaxonJS 3 documentation"},{"a":"SaxonJS 2 documentation"}]}],"a":[{"@attributes":{"id":"download","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"saxonjs3","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"new","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"releases","class":"anchor"}},{"@attributes":{"id":"notes","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"documentation","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"examples","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"license","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"installation","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"support","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"},{"@attributes":{"id":"compatibility","class":"anchor"}},{"@attributes":{"href":"#top","class":"top-of-page"},"p":"Return to top of page"}],"comment":{},"table":[{"@attributes":{"class":"buttons border","id":"one-button"},"tr":{"@attributes":{"class":"buttons border"},"td":[{"a":{"@attributes":{"class":"bodylink","href":"..\/download\/javascript.xml"},"div":"DOWNLOAD"}},{"p":"Download the latest SaxonJS releases from the JavaScript platform download\n                        page."}]}},{"@attributes":{"class":"feature-matrix","style":"margin-left:40px;"},"thead":{"tr":[{"@attributes":{"class":"feature-heading"},"td":["Saxon-EE","SaxonJS"]},{"@attributes":{"class":"feature-heading"},"td":[{},"1.0.0","1.0.1","1.0.2","1.1.0","1.2.0","2.0+","3.0.0-beta1","3.0.0-beta2+"]}]},"tbody":{"tr":[{"td":[{"@attributes":{"style":"text-align:left;"},"div":"9.7.0.15+"},{"p":"\u25cf"},{"p":"*"},{"p":"*"},{"p":"*"},{"p":"*"},{"p":{}},{"p":{}},{"p":{}}]},{"td":[{"@attributes":{"style":"text-align:left;"},"div":"9.8.0.1+"},{"p":"\u25cf"},{"p":"\u25cf"},{"p":"\u25cf"},{"p":"*"},{"p":"*"},{"p":{}},{"p":{}},{"p":{}}]},{"td":[{"@attributes":{"style":"text-align:left;"},"div":"9.8.0.12+"},{"p":"\u25cf"},{"p":"\u25cf"},{"p":"\u25cf"},{"p":"\u25cf"},{"p":"\u25cf"},{"p":{}},{"p":{}},{"p":{}}]},{"td":[{"@attributes":{"style":"text-align:left;"},"div":"9.9.0.1+"},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":"\u25cf"},{"p":{}},{"p":{}},{"p":{}}]},{"td":[{"@attributes":{"style":"text-align:left;"},"div":"10.0+"},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":"\u25cf"},{"p":"*"},{"p":"*"}]},{"td":[{"@attributes":{"style":"text-align:left;"},"div":"11.3+"},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":"\u25cf"},{"p":"*"},{"p":"*"}]},{"td":[{"@attributes":{"style":"text-align:left;"},"div":"12.0-12.4"},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":"\u25cf"},{"p":"*"},{"p":"*"}]},{"td":[{"@attributes":{"style":"text-align:left;"},"div":"12.5"},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":"\u25cf"},{"p":{}}]},{"td":[{"@attributes":{"style":"text-align:left;"},"div":"12.6+"},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":{}},{"p":"\u25cf"},{"p":{}},{"p":"\u25cf"}]}]}}],"h3":["Latest XML technologies","Invocation and serialization","Release notes","2 June 2025"],"h2":["What's new in SaxonJS 3?","What's new in SaxonJS 2?","Releases","Documentation","Examples and sample applications","License","Installation","Support","Saxon-EE compatibility"]}}