This article is part of the [[Getting Started]] Guide.
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 ({{Code|-}}) as an argument. {{Announce|Updated with Version 11}}: The Clark notation was replaced with the [[XQuery 3.0#Expanded QNames|Expanded QNames]] notation.
=Standalone=
{{Announce|Added with Version 11:}} {{Code|-C}}, {{Code|-Q}}, {{Code|-W}}
The following options are available for the standalone [[Command-Line Client]]:
<syntaxhighlightpre>
$ basex -h
BaseX [Standalone]
-b<args> Bind external query variables
-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
-o<path> Write output to local file
-q<expr> Execute XQuery expression
-Q<file> Execute XQuery file
-r<num> Run query multiple times
-R Toggle query execution
-v Toggle output of progress info
-V Toggle detailed query output
-w Toggle whitespace choppingstripping -W Enable indentation with whitespaces
-x Toggle output of query plan
-z Toggle output of query result
</syntaxhighlightpre>
Further details are listed in the following table. If an equivalent database option exists (which can be specified via the <code>[[Commands#SET{{Command|SET]]</code> }} command), it is listed as well.
For the examples to work, it might be necessary to escape some characters depending on your operating system.
| {{Code|[input]}}
|Evaluates the specified input:
* The input string may point to an existing file. If the file suffix is {{Code|.bxs}}, the file contents will be evaluated executed as [[Commands#Basics|Command Script]]; any other file content will be evaluated as XQuery expression.
* Otherwise, the input string itself is evaluated as XQuery expression.
|
|- valign="top"
| {{Code|-b<args>}}
| Binds external variables to XQuery expressions. This flag may be specified multiple times. Variables names and their values are delimited by equality signs (<code>=</code>). The names may be optionally prefixed with dollar signs. If a variable uses a namespace different to from the default namespace, it can be specified with the [http://www[XQuery 3.jclark.com/xml/xmlns.htm Clark Notation0#Expanded QNames|Expanded QNames]]notation.
| {{Option|BINDINGS}}
|
|• <code>-bv=example "declare variable $v external; $v"</code><br/>• <code>-bbQ{URL}ln=value<br/>"declare namespace ns='URL'; declare variable $ns:ln external; $ns:ln"</code>
|- valign="top"
| {{Code|-c<input>}}
| Executes [[commands]]. If the specified input is a valid URI or file reference, this file will be is evaluated as [[Commands#Command_Scripts|Command Script]].
|
|
|• {{Code|-c list}}<br/>• {{Code|-ccommands.txt}}<br/>• {{Code|-c"<info/>"}}
|- valign="top"
| {{Code|-C<file>}}
| Evaluates the contents of the specified file as [[Commands#Command_Scripts|Command Script]].
|
|
|
|- valign="top"
| {{Code|-d}}
|- valign="top"
| {{Code|-q<expr>}}
| Executes Evaluates the specified string as XQuery expression.
|
|
| {{Code|-q"doc('input')//head"}}
|- valign="top"
| {{Code|-Q<file>}}
| Evaluates the contents of the specified file as XQuery expression.
|
|
|
|- valign="top"
| {{Code|-r<num>}}
|- valign="top"
| {{Code|-R}}
| Specifies if a query will be executed evaluated or parsed and compiled only.
| {{Option|RUNQUERY}}
| <code>true</code>
|- valign="top"
| {{Code|-w}}
| Toggles whitespace chopping stripping of XML text nodes. By default, whitespaces will be choppedpreserved.| {{Option|CHOPSTRIPWS}}| <code>truefalse</code>||- valign="top"| {{Code|-W}}| Enables indentation with whitespace. By default, query results will not be indented.| {{Option|SERIALIZER}}| <code>indent=no</code>
|
|- valign="top"
| {{Code|-x}}
| Toggles the output of the query execution plan, formatted as {{Option|XML}}.
| {{Option|XMLPLAN}}
| <code>false</code>
|
|- valign="top"
| {{Code|-X}}
| Generates the query plan before or after query compilation. {{Code|-x}} needs to be activated to make the plan visible.
| {{Option|COMPPLAN}}
| <code>true</code>
|
|- valign="top"
The following options are available for the standalone [[GUI|Graphical User Interface]]:
<syntaxhighlightpre>
$ basexgui -h
BaseX [GUI]
[files] Open specified files
-d Enable debugging
</syntaxhighlightpre>
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=
{{Announce|Added with Version 11:}} {{Code|-C}}
The following options are available for the [[Database Server]]:
<syntaxhighlightpre>
$ basexserver -h
BaseX [Server]
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
-S Start as service
-z Suppress logging
</syntaxhighlightpre>
Details on all options are listed in the following table (equivalent database options are shown in the table as well).
|- valign="top"
| {{Code|-c<input>}}
| Executes [[commands]]. If the specified input is a valid URI or file reference, this file will be is evaluated as [[Commands#Command_Scripts|Command Script]].
|
|
| {{Code|-c"open database;info"}}
|- valign="top"
| {{Code|-C<file>}}
| Evaluates the contents of the specified file as [[Commands#Command_Scripts|Command Script]].
|
|
|
|- valign="top"
| {{Code|-d}}
=Client=
If the [[Database Server{{Announce|Database Client]] is executedAdded with Version 11:}} {{Code|-C}}, {{Code|-Q}}, the user name and password will be requested on command{{Code|-line. The initial user/password combination is '''admin'''/'''admin'''. The following options are available:W}}
If the [[Database Server|Database Client]] is launched, you will be requested for a username and password. <syntaxhighlightpre>
$ basexclient -h
BaseX [Client]
-b<args> Bind external query variables
-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
-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<args> Set serialization parameters
-U<name> Specify user nameusername
-v Toggle output of progress info
-V Toggle detailed query output
-w Toggle whitespace choppingstripping -W Enable indentation with whitespaces
-x Toggle output of query plan
-z Toggle output of query result
</syntaxhighlightpre>
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.
{| class="wikitable"
|- valign="top"
| {{Code|-b<args>}}
| Binds external variables to XQuery expressions. This flag may be specified multiple times. Variables names and their values are delimited by equality signs (<code>=</code>). The names may be optionally prefixed with dollar signs. If a variable uses a namespace different to from the default namespace, it can be specified with the [http://www.jclark.com/xml/xmlns.htm Clark Notation] or [https://wwwXQuery 3.w3.org/TR/xquery-30/0#id-basics Expanded QName NotationQNames|Expanded QNames]]notation.
| {{Option|BINDINGS}}
|
|• <code>-b$v=example "declare variable $v external; $v"</code><br/>• <code>-bbQ{URL}ln=value<br/>"declare namespace ns='URL'; declare variable $ns:ln external; $ns:ln"</code>
|- valign="top"
| {{Code|-c<input>}}
|
|• {{Code|-c list}}<br/>• {{Code|-ccommands.txt}}<br/>• {{Code|-c"<info/>"}}
|- valign="top"
| {{Code|-C<file>}}
| Evaluates the contents of the specified file as [[Commands#Command_Scripts|Command Script]].
|
|
|
|- valign="top"
| {{Code|-d}}
|- valign="top"
| {{Code|-P<pass>}}
| Specifies the user password. If this flag is omitted, the password will be requested on command line. ''Warning'': when When the password is specified supplied with this flag, it may get visible to othersend up in logs or the bash history.
| {{Option|PASSWORD}}
|
| {{Code|-Uadmin -PadminP...}}
|- valign="top"
| {{Code|-q<expr>}}
|
| {{Code|-q"1+2"}}
|- valign="top"
| {{Code|-Q<file>}}
| Evaluates the contents of the specified file as XQuery expression.
|
|
|
|- valign="top"
| {{Code|-r<num>}}
|- valign="top"
| {{Code|-U<name>}}
| Specifies the user nameusername. If this flag is omitted, the user name username will be requested on command line.
| {{Option|USER}}
|
|- valign="top"
| {{Code|-w}}
| Toggles whitespace chopping stripping of XML text nodes. By default, whitespaces will be choppedpreserved.| {{Option|CHOPSTRIPWS}}| <code>chopfalse</code>||- valign="top"| {{Code|-W}}| Enables indentation with whitespace. By default, query results will not be indented.| {{Option|SERIALIZER}}| <code>indent=no</code>
|
|- valign="top"
| {{Code|-x}}
| Toggles the output of the query execution plan, formatted as {{Option|XML}}.
| {{Option|XMLPLAN}}
| <code>false</code>
|
|- valign="top"
| {{Code|-X}}
| Generates the query plan before or after query compilation. {{Code|-x}} needs to be activated to make the plan visible.
| {{Option|COMPPLAN}}
| <code>after</code>
|
|- valign="top"
=HTTP Server=
{{MarkAnnounce|Introduced Added with Version 9.311:}} {{Code|-gC}} option (GZIP enable support)
The following options are available for the [[Web Application|HTTP Server]]:
<syntaxhighlightpre>
$ basexhttp -h
BaseX [HTTP]
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
-s<port> Specify port to stop HTTP server
-S Start as service
-U<name> Specify user nameusername
-z Suppress logging
</syntaxhighlightpre>
The meaning of all options is listed in the following table (equivalent database options are shown in the table as well).
|- valign="top"
| {{Code|-c<input>}}
| Executes [[commands]]. If the specified input is a valid URI or file reference, this file will be is evaluated as [[Commands#Command_Scripts|Command Script]].
|
|
| {{Code|-c"open database"}}
|- valign="top"
| {{Code|-C<file>}}
| Evaluates the contents of the specified file as [[Commands#Command_Scripts|Command Script]].
|
|
|
|- valign="top"
| {{Code|-e}}
| Specifies the port on which the HTTP server will be addressable.
| <code>jetty.xml</code>
| {{Code|89848080}}
| {{Code|-h9999}}
|- valign="top"
| Specifies the port that will be used to stop the HTTP server.
| {{Option|STOPPORT}} or<br/><code>pom.xml</code>
| <code>89858081</code>
|
|- valign="top"
|- valign="top"
| {{Code|-U<name>}}
| Specifies a user nameusername, which will be used by the HTTP services for opening a new session.
| {{Option|USER}}
|
=Changelog=
;Version 11.0
* Added: {{Code|-C}} (standalone, server, client, HTTP server).
* Added: {{Code|-Q}}, {{Code|-W}} (standalone, client).
* Updated: The Clark notation was replaced with the [[XQuery 3.0#Expanded QNames|Expanded QNames]] notation.
;Version 10.0
* Updated: Whitespaces are now preserved by default (see {{Option|STRIPWS}} for more details).
;Version 9.0
* Added: BaseXHTTP, command-line option {{Code|-c}}.
* Updated: BaseXHTTP, command-line option {{Code|-c}}, additionally accepts valid URLs and file references.
;Version 8.2
* Removed: Event ports, {{Code|-e}}.
;Version 8.1
* Added: Bind input strings to the query context with {{Code|-I}}.
;Version 8.0
* Removed: Command-line option <code>-L</code> (results will now be automatically separated by newlines).
;Version 7.9
* Added: Runs tests in file or directory with {{Code|-t}}.
* Removed: interactive server mode.
;Version 7.8
* Added: Specify if a query will be executed or parsed only with {{Code|-R}}.
;Version 7.7
* Added: Bind host to the [[#BaseX Server|BaseX Server]] with {{Code|-n}}.
;Version 7.5
* Added: detection of [[Commands#Basics|Command Scripts]].
* Removed: HTTP server flags {{Code|-R}}, {{Code|-W}}, and {{Code|-X}}.
; Version 7.3:
* Updated: all options are now evaluated in the given order.
* Updated: Create main-memory representations for specified sources with {{Code|-i}}.
; Version 7.2:
* Added: RESTXQ Service
; Version 7.1.1:
* Added: Options {{Code|-C}} and {{Code|-L}} in standalone and client mode.
; Version 7.1:
* Updated: Multiple query files and {{Code|-c}}/{{Code|-i}}/{{Code|-q}} flags can be specified.