Conversion Module

From BaseX Documentation
Revision as of 01:58, 27 May 2012 by CG (talk | contribs)
Jump to navigation Jump to search

This XQuery Module contains functions to convert data between different formats.

Conventions

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

Functions

convert:to-bytes

Signatures convert:to-bytes($bin as basex:binary) as xs:byte*
Summary Extracts the bytes from the given binary data $bin.
Examples
  • convert:to-bytes(xs:base64Binary('QmFzZVggaXMgY29vbA==')) returns the sequence (66, 97, 115, 101, 88, 32, 105, 115, 32, 99, 111, 111, 108).
  • convert:to-bytes(xs:hexBinary("4261736558")) returns the sequence (66 97 115 101 88).

convert:to-string

Signatures convert:to-string($bytes as basex:binary, $encoding as xs:string) as xs:string
Summary Converts the specifed bytes to a string, using the optional $encoding.
Examples
  • convert:to-string(xs:hexBinary('48656c6c6f576f726c64')) returns the string HelloWorld.

Numeric Functions

convert:integer-to-base

Signatures convert: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.
Valid bases are 2, .., 36.
Examples
  • convert:integer-to-base(-1, 16) returns the hexadecimal string 'ffffffffffffffff'.
  • convert:integer-to-base(22, 5) returns '42'.

convert:integer-from-base

Signatures convert: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.
Valid bases are 2, .., 36.
If $str contains more than 64 bits of information, the result is truncated arbitarily.
Examples
  • convert:integer-from-base('ffffffffffffffff', 16) returns -1.
  • convert:integer-from-base('CAFEBABE', 16) returns 3405691582.
  • convert:integer-from-base('42', 5) returns 22.
  • convert:integer-from-base(convert:integer-to-base(123, 7), 7) returns 123.

Changelog

The module was introduced with Version 7.3.