Conversion Module

From BaseX Documentation
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.

Binary Data

convert:to-string

Signatures convert:to-string($bytes as basex:binary) as xs:string
convert:to-string($bytes as basex:binary, $encoding as xs:string) as xs:string
Summary Converts the specifed binary data (xs:base64Binary, xs:hexBinary) to a string.
The UTF-8 default encoding can be overwritten with the optional $encoding argument.
Errors BXCO0001: The input is an invalid XML string, or the wrong encoding has been specified.
BXCO0002: The specified encoding is invalid or not supported.
Examples * convert:to-string(xs:hexBinary('48656c6c6f576f726c64')) returns the string HelloWorld.

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).

Numeric Data

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.

Errors

Code Description
BXCO0001 The input is an invalid XML string, or the wrong encoding has been specified.

Changelog

The module was introduced with Version 7.3.