* The {{Code|.basex}} [[Configuration#Configuration Files|configuration file]] is parsed by every new local BaseX instance. It contains all global options. Local options can be specified at the end of the file after the {{Code|Local Options}} comment:
<pre classsyntaxhighlight lang="brush:perl">
# General Options
DEBUG = false
# Local Options
CHOP = false
</presyntaxhighlight>
* Initial values for global options can also be specified via system properties, which can e.g. be passed on with the [httphttps://docs.oracle.com/javaseen/1.4.2java/docsjavase/tooldocs11/windowstools/java.html#options -D flag] on command line, or using [httphttps://docs.oracle.com/en/java/javase/611/docs/api/java.base/java/lang/System.html#setProperty(java.lang.String,%20javajava.lang.String) System.setProperty()] before creating a BaseX instance. The specified keys need to be prefixed with {{Code|org.basex.}}. An example:
<pre classsyntaxhighlight lang="brush:xqueryperl">
java -Dorg.basex.CHOP=false -cp basex.jar org.basex.BaseX -c"get chop"
CHOP: false
</presyntaxhighlight>
* If using the Mac OS X packaged application then global options can be set within the Info.plist file within the Contents folder of the application package. For example:
<pre classsyntaxhighlight lang="brush:xml">
<key>JVMOptions</key>
<array>
<string>-Dorg.basex.CHOP=false</string>
</array>
</presyntaxhighlight>
* In a [[Web Application]], the default can be adjusted in the {{Code|web.xml}} file as follows:
<pre classsyntaxhighlight lang="brush:xml">
<context-param>
<param-name>org.basex.chop</param-name>
<param-value>false</param-value>
</context-param>
</presyntaxhighlight>
* In XQuery, local options can be set via option declarations and [[XQuery Extensions#Pragmas|pragmas]].
| '''Summary'''
|Specifies the maximum length of a single [[Logging|log message]].
|}
===LOGTRACE===
{{Mark|Introduced with Version 9.4:}}
{| width='100%'
|-
| width='120' | '''Signature'''
|{{Code|LOGTRACE [boolean]}}
|-
| '''Default'''
|{{Code|true}}
|-
| '''Summary'''
|If BaseX is running as [[Web Application]], trace output (generated via {{Code|fn:trace}}, {{Function|Profiling|prof:dump}} and similar functions) if written to the [[Logging|database logs]]. If this option is disabled, trace output will be redirected to standard error, as it is known from the standalone version of BaseX.
|}
|-
| '''Summary'''
|Points to the directory in which all the [[Web Application]] contents are stored, including XQuery, Script, [[RESTXQ]] and configuration files. This :* The option is ignored if BaseX is deployed as [[Web Application#Servlet_Container|web servlet]].* It cannot be assigned via the {{Code|web.xml}} file, as it will be evaluated before the configuration files are parsed.|} ===GZIP=== {{Mark|Introduced with Version 9.3:}} {| width='100%'|-| width='120' | '''Signature'''|{{Code|GZIP [boolean]}}|-| '''Default'''|<code>false</code>|-| '''Summary'''|Jetty provides a [https://www.eclipse.org/jetty/documentation/current/gzip-filter.html Gzip handler] for dynamically uncompressing requests and compressing responses. This feature can be enabled if Jetty is started via the [[Web Application|BaseX HTTP Server]]:* The option can also be enabled on [[Command-Line Options#HTTP Server|command line]] via <code>-g</code>.* It cannot be assigned via the {{Code|web.xml}} file, as it will be evaluated before the configuration files are parsed.* The [https://github.com/eclipse/jetty.project/blob/7cc552013eb4d05cb603ba0bc85d176c97957cd4/jetty-server/src/main/java/org/eclipse/jetty/server/handler/gzip/GzipHandler.java#L187-L211 same defaults] of the web server will be applied (support for GET requests, exclusion of binaries, MSIE 6.0, etc.).
|}
===RESTXQERRORS===
{{Mark|Introduced with Version 9.2.}}
{| width='100%'
|-
| '''Summary'''
|By default, if BaseX is run as [[Web Application]], a the database server instance will be started as well. The server in addition, which can then be addressed by other BaseX clients in parallel to [[Clients]] via the HTTP servicesdatabase port (see {{Option|PORT}}).<br/>If the option is set to {{Code|true}}, the no database server will be disabledlaunched.
|}
|-
| '''Summary'''
|Defines a [[Parsers|parser]] for importing new files to the database. Available parsers are {{Code|XML}}, {{Code|JSON}}, {{Code|CSV}}, {{Code|TEXT}}, {{Code|HTML}}, and {{Code|HTMLRAW}}. HTML input will be parsed as normal XML files documents if [[Parsers#HTML_Parser|Tagsoup]] is not found in the classpath.
|}
|-
| '''Summary'''
|Many XML documents include whitespaces that have been added to improve readability. This option controls the [httphttps://www.w3.org/TR/REC-xml/#sec-white-space white-space processing mode] of the XML parser:
* With the default value {{Code|true}}, leading and trailing whitespaces from text nodes will be chopped and all empty text nodes will be discarded.
* The flag should be turned off if a document contains [[Full-Text#Mixed Content|mixed content]].
In the following example document, the whitespaces in the text nodes of the {{Code|text}} element will not be chopped:
<pre classsyntaxhighlight lang="brush:xml">
<xml>
<title>
<text xml:space="preserve">To <b>be</b>, or not to <b>be</b>, that is the question.</text>
</xml>
</presyntaxhighlight>
It is recommendable to additionally assign <code>indent=no</code> to the {{Option|SERIALIZER}} option; otherwise the serialized documents will automatically be indented.
|}
|-
| '''Summary'''
|Specifies a Semicolon-separated list of XML catalog file files to locally resolve DTDsURIs. See the entry on [[Catalog Resolver]]s for more details.
|}
| '''Summary'''
|This option affects the [[Indexes#Performance|construction]] of new value indexes. It controls the number of index build operations that are performed before writing partial index data to disk:
* By default, if the value is set to {{Code|0}}, some heuristics are applied, based on the current memory consumption. Usually, this works fine.
* If explicit garbage collection is disabled when running Java (e.g. via the JVM option {{Code|-XX:+DisableExplicitGC}}), you may need to choose a custom split size.
* You can e. g. start with {{Code|1000000}} (one million) index operations and adjust this value in the next steps.
* The larger the assigned value is, the less splits will take place, and the more main memory will be required.
* By default, if the value is set to {{Code|0}}, some heuristics are applied, based on the current memory consumption. Usually, this works fine. If explicit garbage collection is disabled when running Java (e.g. via the JVM option {{Code|-XX:+DisableExplicitGC}}), you may need to choose a custom split size.
|}
|-
| '''Summary'''
|A new If a text file with stop words is specified, frequently used terms contained in that file will be ignored when a full-text index will drop tokens that are listed in the specified stopword listis created. A stopword list may decrease the size of the full text indexand speed up your queries. See [[Indexes#Full-Text Index|Full-Text Index]] for more details.
|}
|}
===XQUERY3MIXUPDATES===
{| width='100%'
|-
| width='120' | '''Signature'''
|{{Code|XQUERY3}}|-| '''Default'''|{{Code|true}}|-| '''Summary'''|Enables all [[XQuery 3.0]] features supported by BaseX. If this option is set to {{Code|false}}, the XQuery parser will only accept expressions of the XQuery 1.0 specification.|} ===MIXUPDATES=== {| width='100%'|-| width='120' | '''Signature'''|{{Code|MIXUPDATES}}
|-
| '''Default'''
|-
| '''Summary'''
|Allows queries to both contain updating and non-updating expressions. All updating constraints will be turned off, and nodes to be returned will be copied before they are modified by an updating expression. – By default, in compliance with the XQuery Update Facility, this option is set to {{Code|false}}, because the XQuery Update Facility does not allow an updating query to . See [[XQuery Update#Returning Results|return resultsReturning Results]]for more details.
|}
* Commas in values must be duplicated.
* Variables may optionally be introduced with a leading dollar sign.
* If a variable uses a namespace different to the default namespace, it can be specified with the [http://www.jclark.com/xml/xmlns.htm Clark Notation] or [httphttps://www.w3.org/TR/xquery-30/#id-basics Expanded QName Notation].
This option can also be used on [[Command-Line Options#BaseX Standalone|command line]] with the flag <code>-b</code>.
|-
* <code>a=1,,2</code> binds the value {{Code|1,2}} to the variable $a
* <code>{URI}a=x</code> binds the value {{Code|x}} to the variable $a with the namespace {{Code|URI}}.
* In the following [[Commands#Command_Scripts| Command Script]], the value {{Code|hello world!}} is bound to the variable {{Code|$GREETING}}:<pre classsyntaxhighlight lang="brush:xmlxquery">
SET BINDINGS GREETING="hello world!"
XQUERY declare variable $GREETING external; $GREETING
</presyntaxhighlight>
|}
|-
| '''Summary'''
|Specifies how many stack frames of [httphttps://en.wikipedia.org/wiki/Tail_call tail-calls] are allowed on the stack at any time. When this limit is reached, tail-call optimization takes place and some call frames are eliminated. The feature can be turned off by setting the value to {{Code|-1}}.|} ===WITHDB=== {{Mark|Introduced with Version 9.3.}} {| width='100%'|-| width='120' | '''Signature'''|{{Code|WITHDB}}|-| '''Default'''|{{Code|true}}|-| '''Summary'''|By default, resources specified via [[Databases#XML Documents|fn:doc]] and [[Databases#XML Documents|fn:collection]] are looked up both in the database and in the file system. If you always use {{Function|Database|db:open}} to access databases, it is recommendable to disable this option:* No locks will be created for the two functions (see [[Transaction Management#Limitations|limitations of database locking]] for more details).* Access to local and external resources will be faster, as the database lookup will be skipped.
|}
|}
===DOTPLANFULLPLAN===
{| width='100%'
|-
| width='120' | '''Signature'''
|{{Code|DOTPLAN FULLPLAN [boolean]}}
|-
| '''Default'''
|-
| '''Summary'''
|Saves Attaches the query plan file path, line and column of an XQuery expression as {{Code|.dot}} file the expressions in the current working directory, using original query string to the [https://enquery plan.wikipedia.org/wiki/DOT_Values (graph_description_languageitems and sequences) graph description language]. The output file can e.g. be visualized with [http://www.graphviz.org Graphviz].|} ===DOTCOMPACT=== {| width='100%'|-| width='120' | '''Signature'''|{{Code|DOTCOMPACT [boolean]}}|-| '''Default'''|{{Code|false}}|-| '''Summary'''|Chooses a compact dot representationhave no input information attached.
|}
=Changelog=
;Version 9.3
* Added: {{Option|LOGTRACE}}
;Version 9.3
* Added: {{Option|WITHDB}}, {{Option|GZIP}}
;Version 9.2
* Added: {{Option|RESTXQERRORS}}, {{Option|FULLPLAN}}* Removed: <code>DOTPLAN</code>, <code>DOTCOMPACT</code>
;Version 9.0