Mailing list: included in the docs; BaseX 13: on the Horizon

Sunday, 11 October 2026 · 6 messages · last reply 12 Oct 2026
CG
Christian Grün11 Oct 2026 22:06 #

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

MH
Martin Honnen12 Oct 2026 02:21 #
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
})?output

run 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?

MH
Martin Honnen12 Oct 2026 02:33 #
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-->
CG
Christian Grün12 Oct 2026 11:38 #

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--> > >
MH
Martin Honnen12 Oct 2026 12:40 #
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
})?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.

CG
Christian Grün12 Oct 2026 16:47 #

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

[1] https://files.basex.org/releases/latest/

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. > >

⚡Generated with XQuery