Output Module

From BaseX Documentation
Revision as of 19:02, 15 February 2011 by Leonard.woerteler (talk | contribs)
Jump to navigation Jump to search

This module contains auxiliary XQuery Functions, which can be used for testing and profiling the code. All functions are preceded by the util: prefix.

util:eval

Signatures util:eval($expr as xs:string) as item()*
Summary Evaluates the argument at runtime.
Rules This function dynamically evaluates $expr as XQuery expression and returns the resulting items.
Examples The expression util:eval("1+3") returns 4.

util:run

Signatures util:run($input as xs:string) as item()*
Summary Opens the argument as file and evaluates it at runtime.
Rules This function opens $input as file, evaluates it as XQuery expression, and returns the resulting items.

util:mb

Signatures util:mb($expr as item()) as xs:double
util:mb($expr as item(), $cache as xs:boolean) as xs:double
Summary Measures the memory consumption for evaluating the argument.
Rules This function measures the amount of memory that is needed to evaluate $expr. If the value of $cache is true(), the result will be cached. The returned xs:double value represents the amount of memory in megabytes.
Examples The expression util:mb("1 to 100000") might return 0.
The expression util:mb("1 to 100000", true()) might return 26.678.

util:ms

Signatures util:ms($expr as item()) as xs:double
util:ms($expr as item(), $cache as xs:boolean) as xs:double
Summary Measures the time needed for evaluating the argument.
Rules This function measures the time needed to evaluate $expr. If the value of $cache is true(), the result will be cached. The returned xs:double value represents the needed time in milliseconds.
Examples The expression util:ms("1 to 100000") might return 25.69.
The expression util:ms("1 to 100000", true()) might return 208.12.

util:integer-to-base

Signatures util:integer-to-base($num as xs:integer, $base as xs:integer) as xs:string
Summary Converts $num to base $base, interpreting it as a 64-bit unsigned integer. The first $base elements of the sequence '0',..,'9','a',..,'z' are used as digits.
Rules Valid bases are 2, .., 36.
Examples The expression util:integer-to-base(22, 5) returns '42'.
The expression util:integer-to-base(-1, 16) returns 'ffffffffffffffff'.

util:integer-from-base

Signatures util:integer-from-base($str as xs:string, $base as xs:integer) as xs:integer
Summary Decodes an xs:integer from $str, assuming that it's encoded in base $base.
The first $base elements of the sequence '0',..,'9','a',..,'z' are allowed as digits, case doesn't matter.
Rules Valid bases are 2, .., 36.
If $str contains more than 64 bits of information, the result is truncated arbitarily.
Examples The expression util:integer-from-base('42', 5) returns 22.
The expression util:integer-from-base('ffffffffffffffff', 16) returns -1.
The expression util:integer-from-base('CAFEBABE', 16) returns 3405691582.
The expression util:integer-from-base(util:integer-to-base(123, 7), 7) returns 123.

util:md5

Signatures util:md5($str as xs:string) as xs:hexBinary
Summary Calculates the MD5 hash of the given string $str.
Examples The expression util:md5() returns 'D41D8CD98F00B204E9800998ECF8427E'.
The expression util:md5('BaseX') returns '0D65185C9E296311C0A2200179E479A2'.

util:sha1

Signatures util:sha1($str as xs:string) as xs:hexBinary
Summary Calculates the SHA1 hash of the given string $str.
Examples The expression util:sha1() returns 'DA39A3EE5E6B4B0D3255BFEF95601890AFD80709'.
The expression util:sha1('BaseX') returns '3AD5958F0F27D5AFFDCA2957560F121D0597A4ED'.