Saxonica: SaxonC release notes

SaxonC release notes

Maintenance release version 12.4.2

Released on 25 January 2024

SaxonC 12 maintenance release for Linux, MacOS and Windows.

Maintenance release to fix bugs in the SaxonC 12.4 PHP extension (see bug issues #6288 and #6324), and a number of other SaxonC bugs:

  • Bug #6197: PHP - SIGSEGV in zend_mm_alloc_small or in Java_java_lang_ProcessEnvironment_environ
  • Bug #6273: White space in file path causing an error
  • Bug #6274: parse_json on PySaxonProcessor is broken: has a documented keyword "encoding" argument but throws error for more than one keyword parameter, gives error with json_text
  • Bug #6288: SaxonC PHP extension fails to build - error: 'argument' was not declared in this scope; did you mean 'arguments'?
  • Bug #6294: parseJsonFromFile gives segmentation fault
  • Bug #6301: error: dangling pointer 'parameters' to 'temp' may be used
  • Bug #6304: Multithreaded XSLT transformations runs through with SaxonC 12.4.1 HE but then on Windows gives lengthy error
  • Bug #6306: Saxon in python is not releasing memory
  • Bug #6324: PyXdmValue toString causes SIGSEGV, Segmentation fault

Documented changes:

  • PHP API: added the methods XdmNode.getAttributeNodes() and XdmNode.getChildren() which respectively return the attribute nodes, and child nodes, of the current node, as a PHP array of XdmNode objects.
  • We have thoroughly reviewed how we handle paths passed in by the user so that they are now getting properly resolved with the 'current working directory'. (see bug issue #6273)
  • The build scripts for the command line programs for Linux, MacOS, and Windows have been updated and renamed. For details see "Command line interface" at Running SaxonC.

Maintenance release version 12.4.1

Released on 1 December 2023

SaxonC 12 maintenance release for Linux, MacOS and Windows.

Maintenance release to fix a bug in the Windows build of SaxonC 12.4 (see bug issue #6268).

Maintenance release version 12.4

Released on 29 November 2023

SaxonC 12 maintenance release for Linux, MacOS and Windows.

Documented changes in the release:

  • The importPackage(const char * filename) method is added to the C++, Python and PHP APIs on the Xslt30Processor class. This method supports the xsl:use-package declaration to import a library package before compiling a primary stylesheet or package.
  • PyXdmNode now implements the built-in function len() to return the number of children at a given node. Note this is different to the size() method inherited from PyXdmValue which gets the number of items in a sequence, and so returns the value 1 for a PyXdmNode.
  • The SaxonC Python API now supports the subscript operator (i.e. square brackets []) on PyXdmValue and PyXdmNode objects. For example, given a node object n and integer i, n[i] returns the i'th child node of n or None if the i'th child does not exist. Then n[i][j] returns the j'th child node of n[i], and so on. For a PyXdmValue object, n[i] returns the i'th item in the sequence.
  • Added ICU localization support for SaxonC-EE and SaxonC-PE using ICU4J.
  • The C API is now documented: see SaxonC C API.
  • The main Saxon 12 documentation has been updated to provide more details relevant for the C/C++, PHP and Python platforms where this differs to Saxon on the Java and C# platforms.

For a full list of bug fixes in this SaxonC release, see the bug tracker database.

Maintenance release version 12.3

Released on 4 July 2023

SaxonC 12 maintenance release for Linux, MacOS and Windows.

Documented changes in the release:

  • The getXslMessages() method is added back into the C++, Python and PHP APIs on the XsltExecutable class.
  • Added the method PyXPathProcessor.set_base_uri() (see bug issue #6064).
  • Added the PyXdmNode.local_name property (see bug issue #6065).
  • Added the node axis feature to get the array of nodes reachable from the current node via a given axis. See the axisNodes() method on the XdmNode class (C++, PHP and Python).
  • From 12.3, GLIBC 2.32 is no longer a minimum prerequisite for SaxonC. SaxonC now now works on older versions of GLIBC, allowing users to run the product on these systems.

For a full list of bug fixes in this SaxonC release, see the bug tracker database.

Maintenance release version 12.2

Released on 2 May 2023

SaxonC 12 maintenance release for Linux, MacOS and Windows.

Documented changes in the release:

  • PySaxonApiError is now supported on Windows as on other platforms (removing this restriction in SaxonC 12.1).
  • The set_language_version() method has belatedly been added to the Python PyXPathProcessor API.
  • The XPath 4.0 fn:parse-html() function is now supported.

For a full list of bug fixes in this SaxonC release, see the bug tracker database.

Maintenance release version 12.1

Released on 21 March 2023

SaxonC 12 maintenance release for Linux, MacOS and Windows.

Documented changes in the release:

  • Exceptions that are thrown from the underlying Java code are now handled in the C++ API and re-thrown as a C++ exception called SaxonApiException. Likewise these exceptions are thrown in the Python API as PySaxonApiError and in the PHP extension as PHP exceptions. Note: For the Python API on Windows the PySaxonApiError is not available therefore we throw RuntimeError if there are any failures.
  • The setStreaming() and isStreaming() methods have been added to XQueryProcessor.
  • The setLanguageVersion() method has been added to XPathProcessor and XQueryProcessor; this can be used to enable use of the experimental 4.0 extensions with SaxonC-PE and SaxonC-EE (as documented in the main Saxon 12 documentation).
  • The registerSchemaFromNode() method has been added to SchemaValidator.

For a full list of bug fixes in this SaxonC release, see the bug tracker database.

Major release version 12.0

Released on 12 January 2023

SaxonC 12 is built from SaxonJ 12 using GraalVM Native Image 22.3.0, available on Linux, MacOS and Windows.

As previously, SaxonC is available in three editions: SaxonC-HE (open-source), SaxonC-PE and SaxonC-EE (commercial products). SaxonC runs on the C/C++ platform (C++ 14 minimum), with extensions for the PHP and Python programming languages.

As well as upgrading the version of SaxonJ that SaxonC is built from, a number of other changes have been made, and several bugs have been fixed in the new release.

Documented changes in the release:

  • SaxonC is now compiled to a native executable using GraalVM Native Image (version 22.3.0). (Earlier versions used Excelsior Jet, which is no longer marketed or supported.) GraalVM performs ahead-of-time compilation of the Java source code to executable machine code: the target code is specific to an operating system (Windows, Linux, or MacOS) and CPU architecture (AArch64 and Intel x86_64 for MacOS). The move from Excelsior JET to GraalVM has a number of benefits:
    • GraalVM is actively developed and supported by Oracle, and has excellent performance.
    • We can now deliver (for each target platform) a single shared native library which contains all the code required at run time, that is the application classes, standard library classes, the language runtime, and statically linked native code from the JDK.
    All editions of SaxonC are currently built using GraalVM Community Edition.
  • SaxonC now uses the Native Image C API instead of JNI Invocation API for calling methods embedded in a native (that is, non-Java) shared library. There are benchmarks available which show that using the Native Image C API is considerably faster than using JNI.
  • The SaxonC Python extension is now available as a Python wheel package on PyPI for multiple platforms. This means that it can be installed with pip, which greatly simplifies the installation process. Python 3.8+ is supported.
  • SaxonC now works with PHP 8 and has removed support for PHP 7 since it is no longer supported.
  • In SaxonC 12.0, a few features from SaxonC 11.x have not yet been bridged to GraalVM, in particular:
    • Localization using ICU4J. (Localization using the capabilities of the JDK remains available, but is more limited.)

    • Calls to user-written host language extension functions.

    We hope to restore these features (perhaps in a slightly different form) in the future.
  • The move to a different JVM technology inevitably changes the mechanisms for product installation and configuration. Please see the documentation for details.
  • The SAXONC_HOME environment variable is no longer used for the location of the installed SaxonC library. Dynamic linking of the library is done according to the system default. For example, for a unix system lookup is done according to the path /lib, and then /usr/lib (or /usr/local/lib for MacOS). In some systems the LD_LIBRARY_PATH environment variable can be used instead.
  • Some changes have been made to the structure of the SaxonC product downloads:
    • The download directory has been restructured to move the core library file into the libs/[nix|darwin|win] directory.
    • The Windows download is now presented as a .zip file rather than an .exe file.
    • The python source code has been moved out of the Saxon.C.API/python-saxon directory to the top-level under the pypi directory.
  • There are a few API changes, including:
    • The new methods clarkNameToEQName() and EQNameToClarkName() are available on the SaxonProcessor class across the languages C++, PHP and Python.
    • The flag argument in the setCatalog() method of SaxonProcessor has been dropped.
    • A number of methods have been added to the Xslt30Processor class to better support exporting an XSLT stylesheet to SEF: setFastCompilation(), setRelocatable(), setTargetEdition() and setXsltLanguageVersion(). These methods are available across all languages (C++, PHP and Python).

For a full list of bug fixes in this SaxonC release, see the bug tracker database.

Maintenance release version 11.6

Released on 24 August 2023

SaxonC 11 maintenance release for Linux, MacOS and Windows.

No SaxonC specific bug fixes in this release. See the main Saxon bug tracker for other fixes.

Maintenance release version 11.5

Released on 8 February 2023

SaxonC 11 maintenance release for Linux, MacOS and Windows.

Bug fixes:

  • Bug #5675: DocumentBuilder.setBaseUri not working
  • Bug #5770: set_initial_mode does not handle xsl:unnamed and xsl:default
  • Bug #5854: PyDocumentBuilder missing exception handling method

Maintenance release version 11.4

Released on 28 July 2022

SaxonC 11 maintenance release for Linux, MacOS and Windows.

Bug fixes:

  • Bug #5429: when using no argument with new SaxonProcessor(), further code gives access violation
  • Bug #5446: transform_to_file on PyXslt30Processor and PyXsltExecutable ignores documented xdm_node keyword argument
  • Bug #5449: XSLT:garbage appended to output
  • Bug #5452: set_source and set_output_file functions don't exists but are in examples
  • Bug #5455: build-windows.bat for cppTests samples is not complete, using it gives errors due to various unresolved symbols
  • Bug #5456: testValidator.exe core dumps on Windows in testValidator5
  • Bug #5470: SaxonC HE for Mac in SaxonCGlue.c looks for EE library libsaxoneec.dylib
  • Bug #5533: segfault when setting xslt parameter in a loop
  • Bug #5537: Xslt30Processor.transform_to_file not giving the correct output
  • Bug #5538: string XdmAtomic-getHead: found when XdmAtomicValue->getHead() called
  • Bug #5541: PyXsltExecutable.transform_to_string keyword xdm_node not recognized
  • Bug #5542: Python example causes segmentation error
  • Bug #5546: Calling setCatalog in the SaxonC PHP extension throws an error

Maintenance release version 11.3

Released on 28 March 2022

SaxonC 11 maintenance release for Linux, MacOS and Windows.

Bug fixes:

  • Bug #4428: Multi-threading support of Python bindings Saxon-C
  • Bug #4452: ldconfig /sbin/ldconfig.real: file /lib/libsaxonhec.so is truncated
  • Bug #4682: Inconsistencies in documentation on relative and absolute paths in PHP
  • Bug #5252: Building the command line tools issues a couple of warnings
  • Bug #5307: SENR0001 Cannot serialize a map using this output method
  • Bug #5330: libsaxon-HEC-11.1/samples/php/query is empty for Linux
  • Bug #5337: callTemplateReturningValue(null) with PHP does not call the template named xsl:initial-template but rather gives error "java.lang.IllegalArgumentException: Supplied Clark name is null or empty"
  • Bug #5342: PyXdmMap and PyXdmArray should be iterable
  • Bug #5343: Error found when converting array of XdmValue to XdmArray
  • Bug #5349: PyXPathProcessor.evaluate_single does not handle PyXdmMap, PyXdmArray and PyXdmFunction
  • Bug #5365: Unable to load /usr/lib/libsaxoneec.so
  • Bug #5372: SaxonC HE fails to compile XSLT stylesheets using Unicode categories as it fails to find the categories.xml file during compilation
  • Bug #5373: Python multithreading code crashes
  • Bug #5374: TransformFromFile fails to create output file
  • Bug #5404: Configuration properties not set on SaxonProcessor
  • Bug #5426: Wrong version information displayed for SaxonC 11 PHP module

Maintenance release version 11.2

Released on 18 February 2022

SaxonC 11 maintenance release for Linux, MacOS and Windows.

Bug fixes:

  • Bug #5228: Saxon-C example dir and Saxon-C and/or documentation is out of sync?
  • Bug #5270: NameError: name 'derivedaaptr' is not defined
  • Bug #5274: xsl:template with name="xsl:initial-template" returns None
  • Bug #5279: XdmArray.values() fails to return values as subclasses of XdmValue
  • Bug #5280: Use of fn:highest in XSLT 4 from transform.exe of SaxonC EE 11.1 fails with "Failed to load built-in function library: function-library.sef.xml"
  • Bug #5282: Error: /usr/lib/libsaxoneec.socallTemplateReturningFile not found
  • Bug #5287: How to use XPath system function from Python with SaxonC 11.1
  • Bug #5290: java.lang.ClassCastException : net.sf.saxon.ma.arrays.SimpleArrayItem
  • Bug #5291: build[Edition]-command.bat for Windows have links to 1.2.1 directory
  • Bug #5293: Thread 1 "testXQuery" received signal SIGSEGV, Segmentation fault
  • Bug #5298: TypeError: __str__ returned non-string (type NoneType)
  • Bug #5305: XdmValue::toString for SaxonC not aligned to XdmValue.toString() for SaxonJ

Major release version 11.1

Released on 1 February 2022

SaxonC 11 is the first major release of SaxonC in over two years, available on Linux, MacOS and Windows. The first release in this series is 11.1, which is built from SaxonJ 11.1, also released in February 2022. For the first time, this brings Saxon on C/C++, PHP, and Python up to date with the latest releases on the Java and .NET platforms. Note that the version numbering has been changed to reflect this: for SaxonC, series 11 follows series 1.2.

As previously, SaxonC is available in three editions: SaxonC-HE (open-source), SaxonC-PE and SaxonC-EE (commercial products).

As well as upgrading the version of SaxonJ that SaxonC is built from, a number of other changes have been made, and several bugs have been fixed in the new release.

Documented changes in the release:

  • Compiling the C++ API now requires at least C++14 compiler version. This also affects the building of the Python and PHP APIs.
  • ICU localization support added in SaxonC-PE and SaxonC-EE, to provide support for formatting numbers and dates, as well as sorting and comparison of strings, in a wide variety of languages.
  • Implemented the classes XdmFunctionItem, XdmArray and XdmMap as new XDM data types, making it easier to pass maps and arrays as parameters to queries or stylesheets.
  • The XsltExecutable class has been introduced across all APIs (C++, Python and PHP) to facilitate the execution of compiled stylesheets. This works alongside the Xslt30Processor class which is used to compile stylsheets. In accordance with this we have dropped the XsltProcessor class.
  • Feature #3854: Add PHP's magic methods
  • Bug #4366: Returning string of Maps in XQuery failing
  • Bug #4368: Unable to run Saxon HEC 1.2.1 Python: looks for SaxonHEC1.2.0\libsaxonhec.dll
  • Bug #4370: samples/cppTests/buildCPPSaxonHE.bat still references 1.2.0
  • Feature #4372: Compiling SCM files with Saxon/C
  • Bug #4386: setProperty and setParameter does not replace keys already in the map
  • Bug #4387: set_context() takes exactly 0 positional arguments (1 given)
  • Bug #4395: setBaseOutputURI missing from XSLT API
  • Bug #4409: TypeError: expected bytes, str found in saxonc.PyXQueryProcessor.set_query_base_uri
  • Bug #4410: Error: MyClassInDll.setBaseURI not found
  • Bug #4411: static base URI property missing from XSLTProcessor for C++/PHP/Python
  • Bug #4415: add_package method not implemented
  • Bug #4417: java.util.MissingResourceException: Could not load any resource bundle
  • Bug #4418: Configuration file currently not supported in Python
  • Bug #4467: transformToString() Encoding issue
  • Bug #4513: Error: "declareNameSpace not found
  • Bug #4524: Saxon/C documentation does not give information on customizing installation directory
  • Bug #4528: PHP extension name (ext-saxon/c vs ext-saxonc)
  • Bug #4594: build file for command interface not available on Windows
  • Bug #4595: commands library paths not customizable
  • Bug #4679: Saxon\XSLT30Processor::transformToString() expects exactly 1 parameter, 0 given
  • Bug #4716: size method of XdmValue returns random numbers
  • Bug #4789: Throw exceptions instead of silently returning null
  • Support #4792: Python program using SaxonC 1.2.1 HE module with xquery_processor.run_query_to_string() crashes
  • Support #4847: sotransformToString - Python
  • Feature #4848: PyXdmValue should be iterable
  • Feature #4855: Saxon-C/PHP based on Saxon 10 ?
  • Bug #4873: JETVM crash on some linux servers
  • Bug #4885: Exception 0xC0000005 (EXCEPTION_ACCESS_VIOLATION) Failed to read memory at 0x0000000000000000
  • Bug #5027: setting xslt parameter from python/saxon-c
  • Bug #5030: _0 namespace created from User Extension function
  • Bug #5033: missing getXslMessages() registration in zend_function_entry XsltProcessor_methods[]
  • Bug #5055: setCatalog not included in python API

Maintenance release version 1.2.1 of the 1.2 series

Released on 28 October 2019

This is a maintenance release of Saxon/C on Linux, Mac OS X and Windows. We have made a number of changes and fixed several bugs in the new release.

Documented changes in the release:

  • Bug #4189: Error message does not indicate the Saxon/C method it was called from
  • Bug #4348: SaxonC-1.2.0 for Python does not return expected attribute value
  • Bug #4349: TypeError: expected bytes, str found in make_string_value
  • Bug #4351: set_parameter failing under PyXPathProcessor
  • Bug #4352: JET RUNTIME HAS DETECTED UNRECOVERABLE ERROR: system exception at 0x0000000000428b82
  • Bug #4355: The version incorrectly shows up Saxon-HE 9.9.1.5J
  • Bug #4356: XPathProcessor missing methods
  • Bug #4360: isSchemaAware method in the SaxonProcessor is missing an implementation

Major release version 1.2.0

Released on 16 October 2019

This is a major release of Saxon/C on Linux, Mac OS X and Windows. We have made a number of changes and fixed several bugs in the new release. With this release, support for the Python language is also now available, in addition to the C/C++ and PHP languages already supported. Saxon/C is available in the following products: Saxon-HE/C, Saxon-PE/C and Saxon-EE/C

Documented changes in the release:

  • Updated the core XSLT processor to the Java Saxon 9.9.1.5 version. Please see Latest releases: Saxon/C for details
  • Updated APIs: Support for XSLT 3.0, XQuery 3.1, XPath 3.1 and Schema Validation 1.0/1.1
  • Added a feature rich XSLT30 processor API to the languages: C++, PHP 7.2 and Python. Therefore we now have two XSLT Processor classes for each language supported:
  • Support for Python. Implemented using Cython.
  • Updated to Excelsior JET Enterprise 15.3 (MP1) - cross compiler tool of Saxon
  • Additional methods in the APIs for XSLT, XQuery in C++ and PHP. Also supported in Python
  • XML Catalog file support in Saxon/C
  • Support of Saxon's XSLT export SEF file
  • Bug #2055: Apache allocates a lot of memory without releasing it
  • Bug #3837: Cannot locate the built PHP extension in Saxon/HE for Mac OS X
  • Bug #3952: SchemaValidator 'lax' option causes crash
  • Bug #4147: module php setProperty('m',xxxx) ?
  • Bug #4151: support of compileFromStringAndSave / compileFromFileAndSave + PHP5 build
  • Bug #4156: Just-In-Time compilation cannot be switched on and off
  • Bug #4170: Wrong version information displayed for Saxon PHP module
  • Bug #4177: SchemaValidator setParameter has no effect
  • Bug #4180: getTypedValue is missing from XdmNode
  • Bug #4188: incorrect jni file link Dockerfile
  • Bug #4195: Windows samples run without outputting anything
  • Bug #4274: Using a catalog file with Saxon in PHP
  • Bug #4292: PHP5 segmentation error when call setParameter with NULL value
  • Bug #4302: High memory usage with Saxon/C + PHP
  • Bug #4318: cannot combine with previous 'int' declaration specifier typedef int bool; - Mac OS X

Maintenance release version 1.1.2 of the 1.1 series

Released on 21 February 2019

This is a maintenance release of Saxon/C on Linux, Mac OS X and Windows. We have made a number of changes and fixed several bugs in the new release. In this release we have the following Saxon/C products: Saxon-HE/C, Saxon-PE/C and Saxon-EE/C

Documented changes in the release:

  • Updated the core XSLT processor to the Java Saxon 9.8.0.15 version. Please see Latest releases: Saxon/C for details
  • Updated to Excelsior JET 15.3 - cross compiler tool of Saxon
  • Bug #3597: XdmValue::getUnderlyingValue does not return a value
  • Bug #3816: SaxonCGlue.c: enc_len undeclared identifier
  • Bug #3847: Unable to load /usr/local/lib/libsaxonpec.dylib on Mac OSX
  • Bug #3848: addUnderlyingValue does not return anything
  • Bug #3924: The 'it' option in the setProperty does not accept string with prefix
  • Bug #3952: SchemaValidator 'lax' option causes crash
  • Bug #3953: Error: Processor is not licensed for schema processing!
  • Bug #3961: checkException() method sometimes returns NULL
  • Bug #3963: exceptionOccurred does not return true when exceptionCount() > 1 for XsltProcessor
  • Bug #3977: XdmAtomicValue problems when deleting object - JET RUNTIME HAS DETECTED UNRECOVERABLE ERROR
  • Bug #4031: Generating SEF files via API not available
  • Bug #4063: Fix Saxon/C compile warnings

Major release version 1.1.0

Released on 27 September 2017

This is a major release of Saxon/C on Linux, Mac OS X and Windows. We have made a number of changes and fixed several bugs in the new release. In this release we have the following Saxon/C products: Saxon-HE/C, Saxon-PE/C and Saxon-EE/C

Documented changes in the release:

  • Updated the core XSLT processor to the Java Saxon 9.8.0.4 version. Please see Latest releases: Saxon/C for details
  • Updated APIs: Support for XSLT 3.0, XQuery 3.1, XPath 2.0/3.0 and Schema Validation 1.0/1.1
  • Added XDM Data Model API in support of the specs XPath, XQuery, XSLT and Schema Validation
  • Support for user defined functions. Users can now write their functions in C++/PHP and invoke them in XSLT, XQuery and XPath.
  • Support for PHP7 distribution
  • Windows Saxon/C builds
  • Updated to Excelsior JET 11.3 (MP1) - cross compiler tool of Saxon
  • Revised API for Xslt, XQuery in C, C++ and PHP
  • #2907: php saxon.so is looking for libsaxonhec.so without so extension in both /usr/lib64 and /usr/lib and failing
  • Feature #3084: Must be built for PHP5.6 and 7.x
  • #3117: Unable to load libsaxoneec. with missing .so extension

Maintenance release version 1.0.2 of the 1.0 series

Released on 5 August 2016

This release is a significant one in that the Mac OS X release is out in addition to the Linux version.

The Windows version will follow shortly. We have made a number of changes and fixed several bugs in this release. The fixes applies to the products Saxon-HE/C, Saxon-PE/C and Saxon-EE/C

Bug fixes in this release:

  • Applied the maintenance pack 3 (MP3) to Excelsior JET 11 - cross compiler tool of Saxon
  • Bug #2137 - error: unknown type name 'TCHAR' on Mac OS X
  • Bug #2706 - Unlicensed SchemaValidator segmentation error
  • Bug #2772 - Static variable environ resetting its value to zero and crashes Python test
  • Bug #2847 - C properties and parameters array null and never initialised by default

Maintenance release version 1.0.1 of the 1.0 series

Released on 7 April 2016

This is the first maintenance release of the Saxon/C 1.0 series on Linux only. Windows version will follow shortly. We have made a number of changes and fixed several bugs in this release. The fixes applies to the products Saxon-HE/C, Saxon-PE/C and Saxon-EE/C

Bug fixes in this release:

  • Applied the maintenance pack 2 (MP2) to Excelsior JET 11 - cross compiler tool of Saxon
  • Bug #2636 - XdmValue.h: ISO C++ forbids initialization of member valueType
  • Bug #2637 - PHP build config still using old library naming: libsaxon.so
  • Bug #2640 - Sample files in release referencing local machine
  • Bug #2649 - Compilation with DEBUG defined
  • Bug #2652 - cast from ‘jobject {aka __jobject*}’ to ‘jint {aka int}’ loses precision [-fpermissive]
  • Bug #2657 - Command line tool: Transform, Query, Validate
  • Bug Support #2670 - JET RUNTIME HAS DETECTED UNRECOVERABLE ERROR: system exception at 0x009165e9
  • Bug #2672 - validating with validateToNode
  • Bug #2673 - returning validation with getValidationReport
  • Bug #2675 - Validation report properties missing from documentation
  • Bug #2677 - Saxon/C PHP API getErrorMessage does not report useful error
  • Bug #2680 - JNI DeleteLocalRef: tried to delete non local reference
  • Bug #2690 - saxon.so file missing from 64-bit version and wrong library reference in config.m4
  • Bug #2691 - longer custom path to

Major release version 1.0.0

Released on 5 February 2016

This is the first major Release of Saxon/C on Linux only. Windows version will follow shortly. We have made a number of changes and fixed several bugs in the new release. What is important in this release is the addition of the commercial products to Saxon/C. Namely Saxon-PE/C and Saxon-EE/C

Documented changes in the release:

  • This release now has in addition to Saxon-HE/C commercial products available under Saxon/C: Saxon-PE/C and Saxon-EE/C
  • Updated to Excelsior JET 11 (MP1) - cross compiler tool of Saxon
  • Updated the core XSLT processor to the Java Saxon 9.6.0.9 version
  • New APIS: Support for XPath 2.0/3.0 and Schema Validation 1.0/1.1
  • Added XDM Data Model API in support of the specs XPath, XQuery, XSLT and Schema Validation
  • Improved memory handling of XDM data model and internal code structure both in C++ and PHP
  • Revised API for Xslt, XQuery in C, C++ and PHP
  • #2072 - Saxon/C PHP doesn't (properly) keep a reference in a loop
  • #2115 - transformToFile appends to file if it exists
  • #2142 - setSourceFile does not work with absolute paths
  • #2143 - setResourcesDirectory method not directly available in the PHP API
  • #2156 - Environment variable for Saxon library
  • #2380 - XsltProcessor name clash with libxsl
  • #2473 - Incorrect assumption that 'o' property is relative filename
  • #2477 - Saxon/C set absolute path to Stylesheets is not possible

Beta release version 0.3.1

Released on 28 June 2014

We have made a number of changes and fixed several bugs in the new release. This release is a much more stable and robust product than previous releases therefore we have deemed it a beta release.

Documented changes in the release:

  • Updated the core XSLT processor to the Java Saxon-HE 9.5.1.5 version
  • Improved memory handling and internal code structure both in C++ and PHP
  • #2045 - Resolving resource files on Windows not workings
  • #2046 - XQuery file and source files does not use the CWD
  • #2047 - PHP API: setParameter still has the unused namespace argument
  • #2053 - Strange text strings "test1" and "test2" in the error log
  • #2054 - Web server aborts page loading - Extensive work has been done here in the PHP extension - Java VM preserved between requests
  • #2072 - Saxon/C PHP doesn't (properly) keep a reference in a loop
  • #2073 - Can't use XML from string
  • #2074 - NullPointerException when setting Serialization property.
  • #2088 - Namespace argument in setParameter and in setProperty has been dropped in favour of the JAXP solution. For example, we use a single parameter in the form "{uri}local" or just "local"
  • #2089 - Unable to read normalizationData.xml file

Alpha release version 0.2

Released on 14 March 2014

We have made a number of changes and fixed several bugs in the new release. In some cases a complete redesign of classes and structure. We hope this release is much more robust and closer to a usable product. We have added some handy use cases in the samples directory primarily as PHP code.

Documented changes in the release:

  • Added XQuery 1.0 support
  • Change of C/C++ and PHP APIs.
  • Bug fixed #1963 - Show SAXON and Excelsior JET versions from phpinfo()
  • Bug fixed #1959 - Files should be resolved relative to CWD instead of file path

First alpha release version 0.1

Released on 28 November 2013

Please use the help forums and bug trackers at saxonica.plan.io if you need help or advice.