Thank you, Christian!

I can add those values to the start script and it works.

I wind up with
> BASEX_JVM="${BASEX_JVM} -Djdk.xml.maxGeneralEntitySizeLimit=0 
> -Djdk.xml.totalEntitySizeLimit=0"
out of not being clear where the default values for BASEX_JVM originates these 
days. It does seem to be set before basexgui uses it.

As a note, I think I was already using the internal XML parser, though if I go 
look at the »Parsing« tab in the »Create Database« GUI, "Use internal XML 
parser" is both checked and greyed out, and "Use XML catalog file" has that 
value and is both checked and greyed out.  It's been like that for a while and 
I've been avoiding messing with it because I do have to use a catalog sometimes 
and this configuration has been working.

On Thu, Jan 8, 2026, at 04:13, Christian Grün wrote:
> Hi Graydon,
> 
> You are right, Java imposes various limits on the XML parser that get 
> stricter and more fine granular with every version of the language [1].
> 
> Currently, there are two ways to tackle this:
> 
> • The properties can be overwritten when starting BaseX on command line, for 
> example:
> 
>   -Djdk.xml.maxGeneralEntitySizeLimit=0 -Djdk.xml.totalEntitySizeLimit=0 
> 
> The properties can be added to the BaseX start scripts or assigned to the 
> BASEX_JVM environment variable before starting BaseX.
> 
> • You can use our internal BaseX XML parser, either by enabling the INTPARSE 
> option, or by switching to the »Parsing« tab in the »Create Database« dialog 
> of the GUI and activating the corresponding checkbox.
> 
> In a future version of BaseX, we may introduce a global option to invalidate 
> the limits. As BaseX is a tool for XML experts, we could also invalidate the 
> Java options by default. Feedback from everyone is welcome.
> 
> Best,
> Christian
> 
> [1] 
> https://docs.oracle.com/en/java/javase/25/docs/api/java.xml/module-summary.html#Properties

Reply via email to