dotnet tool install --global SaxonHE11NetXslt --version
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local SaxonHE11NetXslt --version
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=SaxonHE11NetXslt&version=
nuke :add-package SaxonHE11NetXslt --version

Thin .NET 6/8 console app/dotnet tool around IKVM cross-compiled .NET version of Saxon-HE 11.6 Java

This tool is a .NET 6/8 console app/a dotnet tool providing a thin .NET 6/8 wrapper around an IKVM cross-compiled version of Saxon HE 11.6 Java to perform XSLT 3.0 transformations.

This is one of the sample projects outlining my successful attempt to apply and to use the open-source Saxon HE 11 Java XSLT 3.0, XQuery 3.1 and XPath 3.1 library in .NET 6 or .NET 8 code.

Please understand that this is my own experiment, it uses the official Saxon HE 11 release from Maven, but the integration with IKVM and IKVM Maven is an experimental work of my own, not in any way an officially tested and supported product by Saxonica, the company that has produced Saxon.

Feel free to use to try and use it under the Mozilla Public License 2.0.

The releases can be found on NuGet.

Understand that this is work in progress and kind of experimental, I don't have access to a complete test suite of unit tests to rigorously test this, I nevertheless feel it can be useful for folks to at least know about this option to run XSLT 3.0 with .NET 6/8, without depending on the so far commercial only SaxonCS from Saxonica.

Known issues: I have created the project with VS 2022 Community Edition on Windows, apps built that way could be deployed and run successfully under Linux or Mac where the dotnet .NET 6 or 8 runtime is installed; by now, the does seem to work on a Mac, so in experiments of your own you should be able to develop and build cross platform.

How to use

Install with e.g.

dotnet tool install --global SaxonHE11NetXslt --version

Then you can run SaxonHE11NetXslt, it takes the same command line argument like Saxon HE Java, so for example, to run XSLT 3.0 with the default xsl:initial-template you use e.g. SaxonHENetXslt -it -xsl:sheet.xsl or SaxonHENetXslt -it -xsl:sheet.xsl -o:result.html.

Note that Saxon HE 11 can also run XSLT 3.0 against JSON input with the -json option e.g. SaxonHENetXslt -json:input.json -xsl:sheet.xsl.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated 715 5/19/2024
11.6.0 2,994 8/24/2023
11.5.0 3,445 2/9/2023
11.4.1 2,117 2/1/2023
11.4.0 4,183 11/2/2022
11.4.0-alpha1 375 9/13/2022

This is the first release of Saxon HE 11.6 using IKVM 8.8 to built and package for both .NET 6 and .NET 8