Main Page » Getting Started » Command-Line Options

Command-Line Options

Each BaseX Startup mode has one or more command-line options, which are described in this article.

Command-line options can be specified multiple times. Please note that all options will be evaluated in the given order. The standard input can be parsed by specifying a single dash (-) as an argument.

Standalone

Added: -O to set an option.

The following options are available for the standalone Command-Line Interface:

$ basex -h
BaseX [Standalone]
Usage: basex [options...] [input]
  [input]     XQuery or command file, or query string
  -b<var>     Bind query variable (name=value)
  -c<input>   Execute commands from file or string
  -C<file>    Execute command script file
  -d          Toggle debugging output
  -i<input>   Bind file or database to context
  -I<input>   Bind input string to context
  -o<path>    Write output to local file
  -O<option>  Set option (name=value)
  -q<expr>    Execute XQuery expression
  -Q<file>    Execute XQuery file
  -r<num>     Run query multiple times
  -R          Toggle query execution
  -s<param>   Set serialization parameter (name=value)
  -t[path]    Run tests in file or directory
  -u          Toggle updates in original files
  -v          Toggle output of progress info
  -V          Toggle detailed query output
  -w          Toggle whitespace stripping
  -W          Enable indentation with whitespace
  -x          Toggle output of query plan
  -z          Toggle output of query result

Further details are listed in the following table. If an equivalent database option exists (which can be specified via the SET command), it is listed as well.

For the examples to work, it might be necessary to escape some characters depending on your operating system.

Flag Description Option Default Examples
[input] Evaluates the specified input:
  • The input string may point to an existing file. If the file suffix is .bxs, the file contents will be executed as Command Script; any other file content will be evaluated as XQuery expression.
  • Otherwise, the input string itself is evaluated as XQuery expression.
  • "doc('X')//head"
  • query.xq
  • commands.bxs
‑b<args> Binds external variables to XQuery expressions. This flag may be specified multiple times. The name and value are separated by equals signs (=). A name may be optionally prefixed with dollar signs ($). If a variable uses a namespace different from the default namespace, it can be specified with the Expanded QNames notation. BINDINGS
  • -bv=example "declare variable $v external; $v"
  • -bQ{URL}ln=value "declare namespace ns='URL'; declare variable $ns:ln external; $ns:ln"
‑c<input> Executes Commands. If the specified input is a valid URI or file reference, this file is evaluated as Command Script.
  • ‑c list
  • -c commands.txt
  • -c"<info/>"
‑C<file> Evaluates the contents of the specified file as Command Script. -C create.bxs
‑d Toggles the debugging mode. Debugging information is output to standard error. DEBUG false
‑i<input> Opens the specified XML file, directory with XML files, or database. The opened input can then be processed by a command or XQuery expression. ‑i items.xml "//item"
‑I<input> Assigns an input string as item of type xs:untypedAtomic to the query context. ‑I"Hi all" -q"."
‑o<path> All command and query output is written to the specified file. ‑o output.txt
‑O<option> Sets an option; see Options for more details. Name and value are separated by the equals sign (=). The flag may be used multiple times, and the options will be assigned in the specified order. ‑O textindex=true
‑q<expr> Evaluates the specified string as XQuery expression. ‑q"doc('input')//head"
‑Q<file> Evaluates the contents of the specified file as XQuery expression. -Q query.xq
‑r<num> Specifies how often a specified query will be evaluated. RUNS 1 ‑V -r10 "1"
‑R Specifies if a query will be evaluated or parsed and compiled only. RUNQUERY true ‑V -R "1"
‑s<args> Specifies parameters for serializing XQuery results; see Serialization for more details. This flag may be specified multiple times. Name and value are separated by the equals sign (=). SERIALIZER ‑s method=text
‑t[path] Runs all Unit tests in the specified file or directory. ‑t project/tests
‑u Propagates updates on input files back to disk. WRITEBACK false
‑v Toggles the output of process and timing information. false
‑V Prints detailed query information to the standard output, including details on the compilation and profiling steps. QUERYINFO false
‑w Toggles whitespace stripping of XML text nodes. By default, whitespace is preserved. STRIPWS false
‑W Enables indentation with whitespace. By default, query results are not indented. SERIALIZER indent=no
‑x Toggles the output of the query execution plan, formatted as XML. XMLPLAN false
‑z Turns the serialization of XQuery results on/off. This flag is useful if the query is profiled or analyzed. SERIALIZE true

GUI

The following options are available for the standalone Graphical User Interface:

$ basexgui -h
BaseX [GUI]
Usage: basexgui [-d] [files]
  [files]  Open specified files
  -d  Enable debugging

You can pass one or more files as parameters. If an XML document is specified, a database instance can be created from this file. Other files are opened in the editor.

Server

The following options are available for the Database Server:

$ basexserver -h
BaseX [Server]
Usage: basexserver [options...] [stop]
  stop       Stop running server
  -c<input>  Execute commands from file or string
  -C<file>   Execute command script file
  -d         Enable debugging output
  -n<name>   Set host the server is bound to
  -p<port>   Set server port
  -S         Start as service
  -z         Suppress logging

Details on all options are listed in the following table (equivalent database options are shown in the table as well).

For the examples to work, it might be necessary to escape some characters depending on your operating system.

Flag Description Option Default Examples
stop Stops a local database server instance and quits.
‑c<input> Executes Commands. If the specified input is a valid URI or file reference, this file is evaluated as Command Script. ‑c"open database;info"
‑C<file> Evaluates the contents of the specified file as Command Script. -C create.bxs
‑d Enables debugging output. Debugging information is output to standard error. DEBUG false
‑n<name> Specifies the host the server will be bound to. SERVERHOST ‑p127.0.0.1
‑p<port> Specifies the port on which the server will be addressable. SERVERPORT 1984 ‑p9999
‑S Starts the server as service (i.e., in the background). Use YAJSW, or start BaseX as an ordinary background process to get more options.
‑z Prevents the generation of log files. LOG true

Multiple -c and -i flags can be specified. All other options will be set before any other operation takes place. The specified inputs, query files, queries and commands will be subsequently evaluated after that in the given order. The standard input can be parsed by specifying a single dash (-) as argument.

Client

Added: -O to set an option.

If the Database Client is launched, you will be requested for a username and password.

$ basexclient -h
BaseX [Client]
Usage: basexclient [options...] [input]
  [input]     XQuery or command file, or query string
  -b<var>     Bind query variable (name=value)
  -c<input>   Execute commands from file or string
  -C<file>    Execute command script file
  -d          Toggle debugging output
  -i<input>   Bind file or database to context
  -I<input>   Bind input string to context
  -n<name>    Set server (host) name
  -o<path>    Write output to local file
  -O<option>  Set option (name=value)
  -p<port>    Set server port
  -P<pass>    Specify user password
  -q<expr>    Execute XQuery expression
  -Q<file>    Execute XQuery file
  -r<num>     Run query multiple times
  -R          Toggle query execution
  -s<param>   Set serialization parameter (name=value)
  -U<name>    Specify username
  -v          Toggle output of progress info
  -V          Toggle detailed query output
  -w          Toggle whitespace stripping
  -W          Enable indentation with whitespace
  -x          Toggle output of query plan
  -z          Toggle output of query result

See the following table for details (equivalent database options are shown in the table as well).

For the examples to work, it might be necessary to escape some characters, depending on your operating system.

Flag Description Option Default Examples
[input] Evaluates the specified input:
  • The input string may point to an existing file. If the file suffix is .bxs, the file contents will be evaluated as Command Script; any other file content will be evaluated as XQuery expression.
  • Otherwise, the input string itself is evaluated as XQuery expression.
  • "doc('X')//head"
  • query.xq
  • commands.bxs
‑b<args> Binds external variables to XQuery expressions. This flag may be specified multiple times. The name and value are separated by equals signs (=). A name may be optionally prefixed with dollar signs ($). If a variable uses a namespace different from the default namespace, it can be specified with the Expanded QNames notation. BINDINGS
  • -b$v=example "declare variable $v external; $v"
  • -bQ{URL}ln=value "declare namespace ns='URL'; declare variable $ns:ln external; $ns:ln"
‑c<input> Executes Commands. If the specified input is a valid URI or file reference, its content will be executed instead. Empty lines and lines starting with the number sign # will be ignored.
  • ‑c list
  • -c commands.txt
  • -c"<info/>"
‑C<file> Evaluates the contents of the specified file as Command Script. -C create.bxs
‑d Toggles the debugging mode. Debugging information is output to standard error. DEBUG false
‑i<input> Opens the specified XML file, directory with XML files, or database. The opened input can then be processed by a command or XQuery expression. ‑i items.xml "//item"
‑I<input> Assigns an input string as item of type xs:untypedAtomic to the query context. ‑I"Hi all" -q"."
‑n<name> Specifies the host name on which the server is running. HOST localhost ‑nserver.basex.org
‑o<path> All command and query output is written to the specified file. ‑o output.txt
‑O<option> Sets an option; see Options for more details. Name and value are separated by the equals sign (=). The flag may be specified multiple times, and the options will be assigned in the specified order. ‑O textindex=true
‑p<port> Specifies the port on which the server is running. PORT 1984 ‑p9999
‑P<pass> Specifies the user password. If this flag is omitted, the password will be requested on command line. Warning: When the password is supplied with this flag, it may end up in logs or the command-line history. PASSWORD ‑Uadmin -P...
‑q<expr> Executes the specified string as XQuery expression. ‑q"1+2"
‑Q<file> Evaluates the contents of the specified file as XQuery expression. -Q query.xq
‑r<num> Specifies how often a specified query will be evaluated. RUNS 1 ‑V -r10 "1"
‑R Specifies if a query will be executed or parsed only. RUNQUERY true ‑V -R "1"
‑s<args> Specifies parameters for serializing XQuery results; see Serialization for more details. This flag may be specified multiple times. Name and value are separated by the equals sign (=). SERIALIZER ‑s method=text
‑U<name> Specifies the username. If this flag is omitted, the username will be requested on command line. USER ‑Uadmin
‑v Prints process and timing information to the standard output. false
‑V Prints detailed query information to the standard output, including details on the compilation and profiling steps. QUERYINFO false
‑w Toggles whitespace stripping of XML text nodes. By default, whitespace is preserved. STRIPWS false
‑W Enables indentation with whitespace. By default, query results are not indented. SERIALIZER indent=no
‑x Toggles the output of the query execution plan, formatted as XML. XMLPLAN false
‑z Turns the serialization of XQuery results on/off. This flag is useful if the query is profiled or analyzed. SERIALIZE true

HTTP Server

The following options are available for the HTTP Server:

$ basexhttp -h
BaseX [HTTP]
Usage: basexhttp [options...] [stop]
  stop       Stop running server
  -c<input>  Execute commands from file or string
  -C<file>   Execute command script file
  -d         Enable debugging output
  -g         Enable GZIP support
  -h<port>   Set port of HTTP server
  -l         Start in local mode
  -n<name>   Set host name of database server
  -p<port>   Set port of database server
  -s<port>   Specify port to stop HTTP server
  -S         Start as service
  -U<name>   Specify username
  -z         Suppress logging

The meaning of all options is listed in the following table (equivalent database options are shown in the table as well).

For the examples to work, it might be necessary to escape some characters depending on your Operating System.

Flag Description Option Default Examples
stop Stops a local HTTP server and quits. The database server will be stopped as well, unless -l is specified. pom.xml
‑c<input> Executes Commands. If the specified input is a valid URI or file reference, this file is evaluated as Command Script. ‑c"open database"
‑C<file> Evaluates the contents of the specified file as Command Script. -C create.bxs
‑e Enables debugging output. Debugging information is output to standard error. DEBUG false
‑g Enables GZIP support in Jetty. GZIP false
‑h<port> Specifies the port on which the HTTP server will be addressable. jetty.xml 8080 ‑h9999
‑l Starts the server in local mode (without database server instance), and executes all commands in the embedded database context. HTTPLOCAL
‑n<name> Specifies the host name on which the server is running. HOST localhost ‑nserver.basex.org
‑p<port> Specifies the port on which the database server will be addressable. SERVERPORT 1984 ‑p9998
‑s<port> Specifies the port that will be used to stop the HTTP server. STOPPORT or pom.xml 8081
‑S Starts the server as service (i.e., in the background). Use YAJSW, or start BaseX as an ordinary background process to get more options.
‑U<name> Specifies a username, which will be used by the HTTP services for opening a new session. USER ‑Uadmin
‑z Prevents the generation of log files. LOG false

Changelog

Version 12.0
  • Added: -O to set an option (standalone, client).
Version 11.0
  • Added: -C to execute command script files (standalone, server, client, HTTP server).
  • Added: -Q to execute query files (standalone, client).
  • Added: -W to enable whitespace indentation (standalone, client).
  • Updated: The Clark notation was replaced with the Expanded QNames notation.
Version 10.0
  • Updated: Whitespace is now preserved by default (see STRIPWS for more details).
Version 9.0
  • Added: BaseXHTTP, command-line option -c.
  • Updated: BaseXHTTP, command-line option -c, additionally accepts valid URLs and file references.
Version 8.2
  • Removed: Event ports, -e.
Version 8.1
  • Added: Bind input strings to the query context with -I.
Version 8.0
  • Removed: Command-line option -L (results will now be automatically separated by newlines).
Version 7.9
  • Added: Runs tests in file or directory with -t.
  • Removed: interactive server mode.
Version 7.8
  • Added: Specify if a query will be executed or parsed only with -R.
Version 7.7
  • Added: Bind host to the Server with -n.
Version 7.5
  • Added: detection of Command Script.
  • Removed: HTTP server flags -R, -W, and -X.
Version 7.3
  • Updated: all options are now evaluated in the given order.
  • Updated: Create main-memory representations for specified sources with -i.
  • Updated: Options -C/-c and -q/[input] merged.
  • Updated: Option -L also separates serialized items with newlines (instead of spaces).
Version 7.2
  • Added: RESTXQ Service
Version 7.1.1
  • Added: Options -C and -L in standalone and client mode.
Version 7.1
  • Updated: Multiple query files and -c/-i/-q flags can be specified.

⚡Generated with XQuery