Difference between revisions of "XQuery Module"
Jump to navigation
Jump to search
| Line 96: | Line 96: | ||
=Changelog= | =Changelog= | ||
| + | |||
| + | =Changelog= | ||
| + | |||
| + | ;Version 7.8 | ||
| + | * Added: [#xquery:evaluate|xquery:evaluate]] | ||
This module was introduced with Version 7.3. Functions have been adopted from the obsolete Utility Module. | This module was introduced with Version 7.3. Functions have been adopted from the obsolete Utility Module. | ||
[[Category:XQuery]] | [[Category:XQuery]] | ||
Revision as of 16:03, 17 December 2013
This XQuery Module contains functions for evaluating XQuery strings and modules at runtime.
Contents
Conventions
All functions in this module are assigned to the http://basex.org/modules/xquery namespace, which is statically bound to the xquery prefix.
All errors are assigned to the http://basex.org/errors namespace, which is statically bound to the bxerr prefix.
Functions
xquery:eval
| Signatures | xquery:eval($query as xs:string) as item()*xquery:eval($query as xs:string, $bindings as map(*)) as item()* |
| Summary | Evaluates $query as XQuery expression at runtime and returns the resulting items. Database nodes in the result will be copied and returned instead.Variables and context items can be declared via $bindings. The specified keys must be QNames or strings, the values can be arbitrary item sequences:
|
| Errors | BXXQ0001: the query contains updating expressions.FOTY0013: the expression yields function items.
|
| Examples |
xquery:eval("//country", map{ '' := db:open('factbook') })
xquery:eval(".", map{ '' := 'XML' })
xquery:eval("$xml", map{ 'xml' := 'XML' }),
xquery:eval("$xml", map{ '$xml' := 'XML' }),
xquery:eval("declare namespace pref='URI'; $pref:xml", map{ '{URI}xml' := 'XML' }),
declare namespace pref = 'URI';
xquery:eval("$xml", map{ xs:QName('xml') := 'XML' })
xquery:eval("declare namespace pref='URI'; $pref:xml", map{ xs:QName('pref:xml') := 'XML' }),
|
xquery:evaluate
| Signatures | xquery:evaluate($query as xs:string) as item()*xquery:evaluate($query as xs:string, $bindings as map(*)) as item()* |
| Summary | Evaluates $query as XQuery expression at runtime and returns the resulting items. In contrast to xquery:eval, items will never be copied by this function. In exchange, no new database can be opened by this function.
|
| Errors | BXXQ0001: the query contains updating expressions.FOTY0013: the expression yields function items.
|
xquery:invoke
| Signatures | xquery:invoke($uri as xs:string) as item()*xquery:invoke($uri as xs:string, $bindings as map(*)) as item()* |
| Summary | Opens $uri as file, evaluates it as XQuery expression at runtime, and returns the resulting items. Database nodes in the result will be copied and returned instead.The semantics of the $bindings parameter is the same as for xquery:eval.
|
| Errors | BXXQ0001: the expression contains updating expressions.FOTY0013: the expression yields function items.
|
xquery:type
| Signatures | xquery:type($expr as item()*) as item()*
|
| Summary | Similar to fn:trace($expr, $msg), but instead of a user-defined message, it emits the compile-time type and estimated result size of its argument.
|
Errors
| Code | Description |
|---|---|
BXXQ0001
|
A dynamically evaluated query must not contain any updating expressions. |
Changelog
Changelog
- Version 7.8
- Added: [#xquery:evaluate|xquery:evaluate]]
This module was introduced with Version 7.3. Functions have been adopted from the obsolete Utility Module.