Changes

Jump to navigation Jump to search
286 bytes added ,  14:20, 20 July 2022
no edit summary
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|xquery:eval|$query as xs:anyAtomicType|item()*}}<br />{{Func|xquery:eval|$query as xs:anyAtomicType, $bindings as map(*)?|item()*}}<br />{{Func|xquery:eval|$query as xs:anyAtomicType, $bindings as map(*)?, $options as map(*)?|item()*}}<br />
|-valign="top"
| '''Summary'''
|Evaluates the supplied {{Code|$query}} and returns the resulting items. If the query is of type {{Code|xs:anyURI}}, the module located at this URI will be retrieved (a relative URI will be resolved against the static base URI). Otherwise, the input is expected to be of type {{Code|xs:string}}.
* {{Code|base-uri}}: set [https://www.w3.org/TR/xquery-31/#dt-static-base-uri base-uri property] for the query. Overwrites the base URI of the query; will be used when resolving relative URIs by functions such as {{Code|fn:doc}}.
* {{Code|pass}}: passes on the original error info (line and column number, optional file uri). By default, this option is {{Code|false}}.
|-valign="top"
| '''Errors'''
|{{Error|update|#Errors}} the query contains [[XQuery Update#Updating Expressions|updating expressions]].<br/>{{Error|permission|#Errors}} insufficient permissions for evaluating the query.<br/>{{Error|timeout|#Errors}} query execution exceeded timeout.<br/>{{Error|limit|#Errors}} query execution exceeded memory limit.<br/>{{Error|nested|#Errors}} nested query evaluation is not allowed.<br/>Any other error that may occur while evaluating the query.
|-valign="top"
| '''Examples'''
|
* You can bind the context and e.g. operate on a certain database only:<br />
<syntaxhighlight lang="xquery">
xquery:eval("//country", map { '': db:preget('factbook') })
</syntaxhighlight>
* The following expressions use strings as keys. All of them return 'XML':<br/>
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|xquery:eval-update|$query as xs:anyAtomicType|item()*}}<br />{{Func|xquery:eval-update|$query as xs:anyAtomicType, $bindings as map(*)?|item()*}}<br />{{Func|xquery:eval-update|$query as xs:anyAtomicType, $bindings as map(*)?, $options as map(*)?|item()*}}<br />
|-valign="top"
| '''Summary'''
|Evaluates a query as updating expression. All updates will be added to the [[XQuery Update#Pending Update List|Pending Update List]] of the main query and performed after the evaluation of the main query.<br />The rules for all arguments are the same as for {{Function||xquery:eval}}.
|-valign="top"
| '''Errors'''
|{{Error|update|#Errors}} the query contains no [[XQuery Update#Updating Expressions|updating expressions]].<br/>{{Error|permission|#Errors}} insufficient permissions for evaluating the query.<br/>{{Error|timeout|#Errors}} query execution exceeded timeout.<br/>{{Error|limit|#Errors}} query execution exceeded memory limit.<br/>{{Error|nested|#Errors}} nested query evaluation is not allowed.<br/>Any other error that may occur while evaluating the query.
|-valign="top"
| '''Examples'''
|
<syntaxhighlight lang="xquery">
xquery:eval-update("
delete node db:preget('tmp')/*,
update:output('TEMPORARY DATABASE WAS CLEANED UP')
")
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|xquery:parse|$query as xs:anyAtomicType|item()?}}<br />{{Func|xquery:parse|$query as xs:anyAtomicType, $options as map(*)?|item()?}}<br />
|-valign="top"
| '''Summary'''
|Parses the specified {{Code|$query}} as XQuery module and returns the resulting query plan. If the query is of type {{Code|xs:anyURI}}, the module located at this URI will be retrieved (a relative URI will be resolved against the static base URI). Otherwise, the input is expected to be of type {{Code|xs:string}}. The {{Code|$options}} parameter influences the output:
* {{Code|pass}}: by default, the option is {{Code|false}}. If an error is raised, the line/column number and the optional file uri will refer to the location of the function call. If the option is enabled, the line/column and file uri will be adopted from the raised error.
* {{Code|base-uri}}: set [https://www.w3.org/TR/xquery-31/#dt-static-base-uri base-uri property] for the query. This URI will be used when resolving relative URIs by functions such as {{Code|fn:doc}}.
|-valign="top"
| '''Errors'''
|Any error that may occur while parsing the query.
|-valign="top"
| '''Examples'''
|
{| width='100%'
|-valign="top"
| width='120' | '''Signatures'''
|{{Func|xquery:fork-join|$functions as function(*)*|item()*}}
|-valign="top"
|'''Summary'''
|This function executes the supplied (non-updating) functions in parallel.
|-valign="top"
| '''Examples'''
|
)
</syntaxhighlight>
|-valign="top"
|'''Errors'''
|{{Error|error|#Errors}} an unexpected error occurred.
! width="110"|Code
|Description
|-valign="top"
|{{Code|permission}}
|Insufficient permissions for evaluating the query.
|-valign="top"
|{{Code|update}}
|[[XQuery Update#Updating Expressions|updating expression]] found or expected.
|-valign="top"
|{{Code|timeout}}
|Query execution exceeded timeout.
|-valign="top"
|{{Code|memory}}
|Query execution exceeded memory limit.
|-valign="top"
|{{Code|nested}}
|Nested query evaluation is not allowed.
|-valign="top"
|{{Code|error}}
|An unexpected error occurred.
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu