Questions tagged [xslt-3.0]

Use this tag for questions specific to XSL Transformations version 3.0 and no other version.


News: Since June 8th, 2017, XSLT 3.0 is a W3C Recommendation, implemented by Saxon since the release 9.8 the same week and subsequently by the releases Saxon 9.9 and Saxon 10.8 on the Java and .NET framework platform as well as by the now stable Saxon 11.5 release now available as Saxon Java 11.5 for Java, SaxonC 11.5 for C++/C, Python, PHP and as SaxonCS 11.5 for the .NET Core 6 or 7 platform and finally since 2023 in the latest Saxon 12.0 releases for Java (HE, PE, EE), C/C++, PHP, Python (SaxonC 12.0 HE, PE, EE as well as PyPi packages saxonche, saxoncpe, saxonche). XSLT 3.0 is also largely (except streaming) implemented by the current release of Altova (XMLSpy, Raptor version since 2017 release 3 or any later release).


XSLT 3.0 introduces the following new features via elements, attributes, and expressions:

References

XSLT 3 processors

  • Saxon 9.8, 9.9, 10, 11, 12 by Saxonica, exists in the free, open-source HE edition and the commercial PE and EE editions, for 9.8 all editions are available for Java or .NET framework or C/C++, the current stable releases 10.8 and 11.5 are available for Java and .NET framework; Saxon 11.5 also for as SaxonC 11.5 for C/C++/PHP/Python. The 9.9 release Java has been cross-compiled as Saxon-C 1.2 for C/C++ with bindings to be used as a PHP extension and as a Python 3 module. The latest stable Saxon releases 10 and 11 available for Java and C/C++/Python/PHP as well as via SaxonCS for .NET 5/6/7 make xsl:evaluate and functions expressions and higher-order functions available in all editions. The newest release in 2022 was Saxon 11, the first for .NET Core 5 or .NET 6, using an XSLT 3.0 based transpiler approach to convert the Java code base into C# code to be compiled and built for .NET Core 5. Unfortunately SaxonCS 11 is currently only available as the EE edition. The C/C++/Python/PHP SaxonC 11.5 and the latest Java Saxon 11.5 release have been published in February 2023. The newest release is 12.0 available since January 2023 for Java, .NET 6/7 as SaxonCS, SaxonC for C/C++/PHP/Python as well as on PyPi.org for Python 3.
  • Altova Raptor, Altova XMLSpy (the XSLT 3.0 implementation in Altova products supports the W3C recommendations of XSLT 3.0 and XPath 3.1, except streaming in XSLT 3)
  • Saxon-JS 2 is available for Node.js (npm install saxon-js, npm install xslt3) and the browser
  • Saxon HE 11 Java has also been successfully cross-compiled with the latest IKVM to .NET 6 to be usable from .NET 6 or 7 code

Online Editors

XSLT 3.0 support in editors and IDEs

Tuturials


Online Training

"What's New in XSLT 3.0: Part 1" -- A Pluralsight video-course (5.5h), by Dimitre Novatchev

"The Evolution of XPath: What’s New in XPath 3.0" -- A Pluralsight video-course (4.5h), by Dimitre Novatchev


731 questions
2
votes
1 answer

XSLT 3.0 partial streaming (Saxon)

I have a big XML file (6 GB) with this kind of tree: E John Smith
steco
  • 1,303
  • 13
  • 16
2
votes
2 answers

How to use xsl:stream, xsl:accumulator, xs:fork from XSLT 3.0?

I am reading the W3C documentation for XSLT 3.0 here. I wonder how to use these elements: (1) xsl:decimal-format (2) xsl:stream (3) xsl:accumulator (4) xsl:accumulator-rule (5) xsl:fork Apparently these are some of the less used elements. As the…
Chong Lip Phang
  • 8,755
  • 5
  • 65
  • 100
2
votes
2 answers

How to use a map in XSLT?

I am reading the W3C documentation for XSLT 3.0 here. Here is what I have got:
Chong Lip Phang
  • 8,755
  • 5
  • 65
  • 100
2
votes
1 answer

Keyword xsl:template may not contain xsl:next-match

Could someone explain me why the following gives me the error: Keyword xsl:template may not contain xsl:next-match
neu-rah
  • 1,662
  • 19
  • 32
2
votes
1 answer

XSLT3 Algorithm Q: Fastest way to find data based on timestamps -- Most recent before date X

I work with large numbers of medium-small document (~2 meg) data files and am trying to determine the fastest way to lookup values based on time-stamps. This would be simple if I were looking up "Find data for timestamp X," but I generally want…
David R
  • 994
  • 1
  • 11
  • 27
2
votes
1 answer

Is there a way to remove all attributes from an XSLT attribute set when overriding that attr set?

I'm working with some third-party XSLT that makes heavy use of attribute sets for transforming XML to various forms of XSL:FO. Example: notes.xsl: