Difference between revisions of "Process Module"

From BaseX Documentation
Jump to navigation Jump to search
m (Text replace - "{{Mono|" to "{{Code|")
Line 12: Line 12:
 
|-
 
|-
 
| width='90' | '''Signatures'''
 
| width='90' | '''Signatures'''
|{{Mono|<b>proc:system</b>($cmd as xs:string) as xs:string}}<br/>{{Mono|<b>proc:system</b>($cmd as xs:string, $args as xs:string*) as xs:string}}<br/>{{Mono|<b>proc:system</b>($cmd as xs:string, $args as xs:string*, $encoding as xs:string) as xs:string}}
+
|{{Code|<b>proc:system</b>($cmd as xs:string) as xs:string}}<br/>{{Code|<b>proc:system</b>($cmd as xs:string, $args as xs:string*) as xs:string}}<br/>{{Code|<b>proc:system</b>($cmd as xs:string, $args as xs:string*, $encoding as xs:string) as xs:string}}
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Executes the specified command in a separate process and returns the result as string.<br/>Additional command arguments may be specified via {{Mono|$args}}.<br/>The result can be explicitly converted to a specified {{Mono|$encoding}}. If no encoding is specified, the system’s default encoding is used.
+
|Executes the specified command in a separate process and returns the result as string.<br/>Additional command arguments may be specified via {{Code|$args}}.<br/>The result can be explicitly converted to a specified {{Code|$encoding}}. If no encoding is specified, the system’s default encoding is used.
 
|-
 
|-
 
|'''Errors'''
 
|'''Errors'''
|'''[[#Errors|BXPRnnnn]]''': If the command results in an error, an XQuery error will be raised. Its code will consist of the letters {{Mono|BXPR}} and four digits with the command’s exit code.<br/>'''[[#Errors|BXPR9999]]''' is raised if the specified encoding does not exist or is not supported.
+
|'''[[#Errors|BXPRnnnn]]''': If the command results in an error, an XQuery error will be raised. Its code will consist of the letters {{Code|BXPR}} and four digits with the command’s exit code.<br/>'''[[#Errors|BXPR9999]]''' is raised if the specified encoding does not exist or is not supported.
 
|-
 
|-
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
* {{Mono|proc:system('date')}} returns the current date on a Linux system.
+
* {{Code|proc:system('date')}} returns the current date on a Linux system.
 
* The following example returns "Command not found", if the command "xyz" cannot be located or executed:
 
* The following example returns "Command not found", if the command "xyz" cannot be located or executed:
 
<pre class="brush:xquery">
 
<pre class="brush:xquery">
Line 37: Line 37:
 
|-
 
|-
 
| width='90' | '''Signatures'''
 
| width='90' | '''Signatures'''
|{{Mono|<b>proc:execute</b>($cmd as xs:string) as element(result)}}<br/>{{Mono|<b>proc:execute</b>($cmd as xs:string, $args as xs:string*) as element(result)}}<br/>{{Mono|<b>proc:execute</b>($cmd as xs:string, $args as xs:string*, $encoding as xs:string) as element(result)}}
+
|{{Code|<b>proc:execute</b>($cmd as xs:string) as element(result)}}<br/>{{Code|<b>proc:execute</b>($cmd as xs:string, $args as xs:string*) as element(result)}}<br/>{{Code|<b>proc:execute</b>($cmd as xs:string, $args as xs:string*, $encoding as xs:string) as element(result)}}
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Executes the specified command in a separate process and returns the result as element.<br/>Additional command arguments may be specified via {{Mono|$args}}.<br/>The result can be explicitly converted to a specified {{Mono|$encoding}}. If no encoding is specified, the system’s default encoding is used.<br/>A result has the following structure:<br/>
+
|Executes the specified command in a separate process and returns the result as element.<br/>Additional command arguments may be specified via {{Code|$args}}.<br/>The result can be explicitly converted to a specified {{Code|$encoding}}. If no encoding is specified, the system’s default encoding is used.<br/>A result has the following structure:<br/>
 
<pre class="brush:xml">
 
<pre class="brush:xml">
 
<result>
 
<result>
Line 54: Line 54:
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
* {{Mono|proc:execute('dir', '\')}} returns the root directory on a Windows system.
+
* {{Code|proc:execute('dir', '\')}} returns the root directory on a Windows system.
 
|}
 
|}
  

Revision as of 15:13, 26 May 2012

This XQuery Module provides functions for executing system commands from XQuery.

Conventions

All functions in this module are assigned to the http://basex.org/modules/proc namespace, which is statically bound to the proc prefix.
All errors are assigned to the http://basex.org/errors namespace, which is statically bound to the bxerr prefix.

Functions

proc:system

Signatures proc:system($cmd as xs:string) as xs:string
proc:system($cmd as xs:string, $args as xs:string*) as xs:string
proc:system($cmd as xs:string, $args as xs:string*, $encoding as xs:string) as xs:string
Summary Executes the specified command in a separate process and returns the result as string.
Additional command arguments may be specified via $args.
The result can be explicitly converted to a specified $encoding. If no encoding is specified, the system’s default encoding is used.
Errors BXPRnnnn: If the command results in an error, an XQuery error will be raised. Its code will consist of the letters BXPR and four digits with the command’s exit code.
BXPR9999 is raised if the specified encoding does not exist or is not supported.
Examples
  • proc:system('date') returns the current date on a Linux system.
  • The following example returns "Command not found", if the command "xyz" cannot be located or executed:
try {
  proc:system('xyz')
} catch bxerr:BXPR0002 {
  'Command not found.'
}

proc:execute

Signatures proc:execute($cmd as xs:string) as element(result)
proc:execute($cmd as xs:string, $args as xs:string*) as element(result)
proc:execute($cmd as xs:string, $args as xs:string*, $encoding as xs:string) as element(result)
Summary Executes the specified command in a separate process and returns the result as element.
Additional command arguments may be specified via $args.
The result can be explicitly converted to a specified $encoding. If no encoding is specified, the system’s default encoding is used.
A result has the following structure:
<result>
  <output>...result...</output>
  <error/>
  <code>0</code>
</result>
Errors BXPR9999 is raised if the specified encoding does not exist or is not supported.
Examples
  • proc:execute('dir', '\') returns the root directory on a Windows system.

Changelog

The module was introduced with Version 7.2.2.

Errors

Code Description
BXPR9999 The specified encoding does not exist or is not supported.