The Saxon 12.7 maintenance release has been published. This is a maintenance release for Java, C#, C/C++, PHP, and Python that addresses a few significant shortcomings in the Saxon 12.6 release.
Saxon 12.7 was released on 16 May 2025. This release has been uploaded to the usual locations on the Saxonica website, GitHub, and Maven, PyPi, and NuGet. SaxonCS 12.7 is built with .NET 8.
For a list of the issues resolved in this release, please visit the issue trackers for SaxonJ and SaxonCS or SaxonC on the Saxon support site.
Download products:
- Binaries for PE and EE are available from our download pages.
- SaxonJ-HE is available on the Maven Central repository.
- SaxonJ-HE, PE, and EE can also be found on our experimental Maven repository.
- Python wheels for SaxonC (HE, PE, and EE) are available from PyPI.
- SaxonCS is available on NuGet
- Saxon-HE is available from our open source GitHub repository. The GitHub repository also provides source code for those who need it.
For more details, please consult the documentation.
Issues resolved
The substantial changes in this release are:
- We’ve returned to supporting JDK 8 in 12.7. The decision to move to JDK 11 in 12.6 was intentional, but perhaps too eager. Fair warning: it is very unlikely that Saxon 13 will be released with support for JDK 8.
- We worked around a bug that caused the SaxonC products to fail under X86 emulation on Windows/ARM. (The bug is that Windows emulation doesn’t support some modern instructions that GraalVM was generating. We worked around it by turning down some GraalVM optimizations in that environment.)
Issues in SaxonJ and SaxonCS
These are just the release highlights, for a full list, see the issue tracker.
- 6547 Resolved some schema loading performance regressions
- 6771 Restored JDK 8 compatibility to the class files
- 6776 Resolved a null pointer exception
- 6778 Fixed the class name in the javax.xml.validation.SchemaFactory service
Issues in SaxonC
In addition to the X86 emulation problem, we resolved a few more issues in SaxonC. For a full list, see the issue tracker.
- 6443 Fixed a bug in Python PySaxonProcessor.make_atomic_value
- 6522 The documentation for Saxon\SchemaValidator is incorrect
- 6525 Fixed XdmNode::getChildren()
- 6526 Fixed xdmNode->axisNodes(3) on PHP
- 6536 Fixed segmentation fault with Python SaxonCHE 12.5
- 6780 Accepted suggestion to set sxn_environ values to NULL after allocation
- 6781 Fixed crash on Windows 11 under x86 emulation on ARM
- 6787 The setCatalogFiles method was missing from the C API
If you encounter any issues with Saxon 12.7, please report them on our issue tracker.