Mailing list: included in the docs; BaseX 13: on the Horizon
Dear all,
Our mailing list archive (since 2010) is now available in the BaseX documentation. Thanks to XQuery Full Text, you can easily browse and search past discussions:
https://docs.basex.org/main/~List
Meanwhile, we’re working hard to get BaseX 13 out in October. A devil of a job. Your beta-testing feedback is more than welcome and will help us make the release… better than ever!
https://docs.basex.org/13/BaseX_13 https://files.basex.org/releases/latest/
Happy querying,Christian
Quoted text · Christian Grün · 9 lines
On 11/10/2026 22:06, Christian Grün via BaseX-Talk wrote: > > Meanwhile, we’re working hard to get BaseX 13 out in October. A devil > of a job. Your beta-testing feedback is more than welcome and will > help us make the release… better than ever! > > https://docs.basex.org/13/BaseX_13 > https://files.basex.org/releases/latest/ >
I have a question about the fn:transform support and Saxon (testing with Saxon HE 12.10), when I run Saxon stand-alone it can output the Java version from XSLT with
system-property('java.version')i.e. code like
transform(map {
'source-node' : document {
<root><item>foo</item><item>bar</item></root>
},
'stylesheet-node' : <xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:output method="xml" indent="yes"/>
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="/" name="xsl:initial-template">
<xsl:copy>
<xsl:apply-templates/>
<xsl:comment>Run with Java {{system-property('java.version')}}
{{system-property('xsl:product-name')}}
{{system-property('xsl:product-version')}} at
{{current-dateTime()}}</xsl:comment>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>,
'xslt-version' : 3.0
})?outputrun directly with Saxon outputs e.g.
<?xml version="1.0"
encoding="UTF-8"?><root><item>foo</item><item>bar</item></root><!--Run
with Java 21.0.12.1 SAXON HE 12.10 at 2026-10-12T02:16:35.561758+02:00-->When I use the same Java version to run BaseX from the command line and the above XQuery the output lacks the Java version e.g. is
<root><item>foo</item><item>bar</item></root><!--Run with Java SAXON HE
12.10 at 2026-10-12T02:16:44.4959817+02:00-->Is that intended, are you running Saxon from BaseX in a way that disables the system-property('java.foo') access?
Quoted text · Martin Honnen · 11 lines
On 12/10/2026 02:21, Martin Honnen via BaseX-Talk wrote: > > When I use the same Java version to run BaseX from the command line > and the above XQuery the output lacks the Java version e.g. is > > <root><item>foo</item><item>bar</item></root><!--Run with Java SAXON > HE 12.10 at 2026-10-12T02:16:44.4959817+02:00--> > > Is that intended, are you running Saxon from BaseX in a way that > disables the system-property('java.foo') access? >
The proprietary xslt:transform with e.g.
xslt:transform(document {
<root><item>foo</item><item>bar</item></root>
},
document { <xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:output method="xml" indent="yes"/>
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="/" name="xsl:initial-template">
<xsl:copy>
<xsl:apply-templates/>
<xsl:comment>Run with Java {{system-property('java.version')}}
{{system-property('xsl:product-name')}}
{{system-property('xsl:product-version')}} at
{{current-dateTime()}}</xsl:comment>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>})does output the Java version e.g.
<root><item>foo</item><item>bar</item></root><!--Run with Java 21.0.12.1
SAXON HE 12.10 at 2026-10-12T02:31:13.052281+02:00-->Hi Martin,
BaseX doesn’t restrict access to system properties on purpose. For fn:transform, we create a plain Saxon processor and only set RESULT_DOCUMENT_THREADS to 1. The trusted option only affects how resources are resolved.
Could you send us a small query that reproduces the issue? It would also help to know how Saxon is added to the classpath and whether a Saxon configuration file is involved.
Best, Christian
Quoted text · Martin Honnen · 48 lines
Martin Honnen via BaseX-Talk <basex-talk at mailman.uni-konstanz.de> schrieb am Montag, 12. Oktober 2026 um 02:34: > > On 12/10/2026 02:21, Martin Honnen via BaseX-Talk wrote: > > > > When I use the same Java version to run BaseX from the command line > > and the above XQuery the output lacks the Java version e.g. is > > > > <root><item>foo</item><item>bar</item></root><!--Run with Java SAXON > > HE 12.10 at 2026-10-12T02:16:44.4959817+02:00--> > > > > Is that intended, are you running Saxon from BaseX in a way that > > disables the system-property('java.foo') access? > > > > The proprietary xslt:transform with e.g. > > xslt:transform(document { > <root><item>foo</item><item>bar</item></root> > }, > document { <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="3.0" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > exclude-result-prefixes="#all" > expand-text="yes"> > > <xsl:output method="xml" indent="yes"/> > > <xsl:mode on-no-match="shallow-copy"/> > > <xsl:template match="/" name="xsl:initial-template"> > <xsl:copy> > <xsl:apply-templates/> > <xsl:comment>Run with Java {{system-property('java.version')}} > {{system-property('xsl:product-name')}} > {{system-property('xsl:product-version')}} at > {{current-dateTime()}}</xsl:comment> > </xsl:copy> > </xsl:template> > > </xsl:stylesheet>}) > > does output the Java version e.g. > > <root><item>foo</item><item>bar</item></root><!--Run with Java 21.0.12.1 > SAXON HE 12.10 at 2026-10-12T02:31:13.052281+02:00--> > >
Quoted text · Christian Grün · 2 lines
On 12/10/2026 11:38, Christian Grün wrote: > Could you send us a small query that reproduces the issue? It would also help to know how Saxon is added to the classpath and whether a Saxon configuration file is involved.
My first message https://docs.basex.org/main/~List/thread/445f2c7a00c6f01b#098be1636afa550e (as a response to your Mailing list/BaseX13 announcement) contained an XQuery
transform(map {
'source-node' : document {
<root><item>foo</item><item>bar</item></root>
},
'stylesheet-node' : <xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="3.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="#all"
expand-text="yes">
<xsl:output method="xml" indent="yes"/>
<xsl:mode on-no-match="shallow-copy"/>
<xsl:template match="/" name="xsl:initial-template">
<xsl:copy>
<xsl:apply-templates/>
<xsl:comment>Run with Java {{system-property('java.version')}}
{{system-property('xsl:product-name')}}
{{system-property('xsl:product-version')}} at
{{current-dateTime()}}</xsl:comment>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>,
'xslt-version' : 3.0
})?outputAs for how I run it, I use e.g.
PS C:\Users\marti> .\OneDrive\Documents\cheerpj-tests\BaseX130\bin\basex.bat .\OneDrive\Documents\XQuery\transform-test1.xq <root><item>foo</item><item>bar</item></root><!--Run with Java SAXON HE 12.10 at 2026-10-12T12:28:06.2086946+02:00-->
where that basex.bat is the original version edited to directly reference my Java 21 installation e.g. instead of just calling
java -cp "%CP%" %BASEX_JVM% org.basex.BaseX %*in there my local copy calls
C:\Users\marti\.jdks\temurin-21.0.12.1\bin\java.exe -cp "%CP%" %BASEX_JVM% org.basex.BaseX %*
Saxon is installed in lib/custom as follows:
PS C:\Users\marti> ls .\OneDrive\Documents\cheerpj-tests\BaseX130\lib\custom\
Verzeichnis: C:\Users\marti\OneDrive\Documents\cheerpj-tests\BaseX130\lib\custom
Mode LastWriteTime Length Name ---- ------------- ------ ---- lar-- 12/10/2026 12:28 lib -a--- 12/10/2026 12:26 5793349 saxon-he-12.10.jar
PS C:\Users\marti> ls .\OneDrive\Documents\cheerpj-tests\BaseX130\lib\custom\lib
Verzeichnis: C:\Users\marti\OneDrive\Documents\cheerpj-tests\BaseX130\lib\custom\lib
Mode LastWriteTime Length Name ---- ------------- ------ ---- la--- 12/10/2026 12:26 268780 jline-2.14.6.jar la--- 12/10/2026 12:26 1033122 xmlresolver-5.3.3-data.jar la--- 12/10/2026 12:26 167889 xmlresolver-5.3.3.jar
As I pointed out in my second message
https://docs.basex.org/main/~List/thread/445f2c7a00c6f01b#4e41275f58667d8e, when I run the XQuery shown there (just using xslt:transform instead of fn:transform) run from BaseX 13's snapshot command line the Java version is output.
Hi Martin,
Well observed, the bug was ours. With Saxon HE, fn:transform used a fallback interface, which hid the Java system properties and made a few options unavailable.
That’s a typical difficulty with external APIs: we rely on what’s documented, and documentations are often incomplete. We have switched to an alternative that we hope works with all Saxon editions [1].
Best, Christian
Quoted text · Martin Honnen · 93 lines
Martin Honnen via BaseX-Talk <basex-talk at mailman.uni-konstanz.de> schrieb am Montag, 12. Oktober 2026 um 12:41: > > On 12/10/2026 11:38, Christian Grün wrote: > > Could you send us a small query that reproduces the issue? It would also help to know how Saxon is added to the classpath and whether a Saxon configuration file is involved. > > > My first message > https://docs.basex.org/main/~List/thread/445f2c7a00c6f01b#098be1636afa550e > (as a response to your Mailing list/BaseX13 announcement) contained an > XQuery > > > transform(map { > 'source-node' : document { > <root><item>foo</item><item>bar</item></root> > }, > 'stylesheet-node' : <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > version="3.0" > xmlns:xs="http://www.w3.org/2001/XMLSchema" > exclude-result-prefixes="#all" > expand-text="yes"> > > <xsl:output method="xml" indent="yes"/> > > <xsl:mode on-no-match="shallow-copy"/> > > <xsl:template match="/" name="xsl:initial-template"> > <xsl:copy> > <xsl:apply-templates/> > <xsl:comment>Run with Java {{system-property('java.version')}} > {{system-property('xsl:product-name')}} > {{system-property('xsl:product-version')}} at > {{current-dateTime()}}</xsl:comment> > </xsl:copy> > </xsl:template> > > </xsl:stylesheet>, > 'xslt-version' : 3.0 > })?output > > > As for how I run it, I use e.g. > > PS C:\Users\marti> > .\OneDrive\Documents\cheerpj-tests\BaseX130\bin\basex.bat > .\OneDrive\Documents\XQuery\transform-test1.xq > <root><item>foo</item><item>bar</item></root><!--Run with Java SAXON HE > 12.10 at 2026-10-12T12:28:06.2086946+02:00--> > > where that basex.bat is the original version edited to directly > reference my Java 21 installation e.g. instead of just calling > > java -cp "%CP%" %BASEX_JVM% org.basex.BaseX %* > > in there my local copy calls > > C:\Users\marti\.jdks\temurin-21.0.12.1\bin\java.exe -cp "%CP%" > %BASEX_JVM% org.basex.BaseX %* > > Saxon is installed in lib/custom as follows: > > PS C:\Users\marti> ls > .\OneDrive\Documents\cheerpj-tests\BaseX130\lib\custom\ > > Verzeichnis: > C:\Users\marti\OneDrive\Documents\cheerpj-tests\BaseX130\lib\custom > > Mode LastWriteTime Length Name > ---- ------------- ------ ---- > lar-- 12/10/2026 12:28 lib > -a--- 12/10/2026 12:26 5793349 saxon-he-12.10.jar > > PS C:\Users\marti> ls > .\OneDrive\Documents\cheerpj-tests\BaseX130\lib\custom\lib > > Verzeichnis: > C:\Users\marti\OneDrive\Documents\cheerpj-tests\BaseX130\lib\custom\lib > > Mode LastWriteTime Length Name > ---- ------------- ------ ---- > la--- 12/10/2026 12:26 268780 jline-2.14.6.jar > la--- 12/10/2026 12:26 1033122 xmlresolver-5.3.3-data.jar > la--- 12/10/2026 12:26 167889 xmlresolver-5.3.3.jar > > > As I pointed out in my second message > https://docs.basex.org/main/~List/thread/445f2c7a00c6f01b#4e41275f58667d8e, > when I run the XQuery shown there (just using xslt:transform instead of > fn:transform) run from BaseX 13's snapshot command line the Java version > is output. > >
Written for BaseX 12.4. BaseX may have changed since: please check the current documentation.