Difference between revisions of "Conversion Module"

From BaseX Documentation
Jump to navigation Jump to search
(Created page with "This XQuery Module contains functions to convert data between different formats. =Conventions= All functions in this module are assigned to the {{Code|http:/...")
 
Line 12: Line 12:
 
|-
 
|-
 
| width='90' | '''Signatures'''
 
| width='90' | '''Signatures'''
|{{Func|util:to-bytes|$bin as xs:binary|xs:byte*}}
+
|{{Func|convert:to-bytes|$bin as basex:binary|xs:byte*}}
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
Line 19: Line 19:
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
* <code>util:to-bytes(xs:base64Binary('QmFzZVggaXMgY29vbA=='))</code> returns the sequence {{Code|(66, 97, 115, 101, 88, 32, 105, 115, 32, 99, 111, 111, 108)}}.
+
* <code>convert:to-bytes(xs:base64Binary('QmFzZVggaXMgY29vbA=='))</code> returns the sequence {{Code|(66, 97, 115, 101, 88, 32, 105, 115, 32, 99, 111, 111, 108)}}.
* {{Code|util:to-bytes(xs:hexBinary("4261736558"))}} returns the sequence {{Code|(66 97 115 101 88)}}.
+
* {{Code|convert:to-bytes(xs:hexBinary("4261736558"))}} returns the sequence {{Code|(66 97 115 101 88)}}.
 
|}
 
|}
  
Line 27: Line 27:
 
|-
 
|-
 
| width='90' | '''Signatures'''
 
| width='90' | '''Signatures'''
|{{Func|util:to-string|$bytes as xs:binary, $encoding as xs:string|xs:string}}
+
|{{Func|convert:to-string|$bytes as basex:binary, $encoding as xs:string|xs:string}}
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
Line 34: Line 34:
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
* {{Code|util:to-string(xs:hexBinary('48656c6c6f576f726c64'))}} returns the string {{Code|HelloWorld}}.
+
* {{Code|convert:to-string(xs:hexBinary('48656c6c6f576f726c64'))}} returns the string {{Code|HelloWorld}}.
 
|}
 
|}
  
Line 40: Line 40:
 
=Numeric Functions=
 
=Numeric Functions=
  
==util:integer-to-base==
+
==convert:integer-to-base==
 
{|
 
{|
 
|-
 
|-
 
| width='90' | '''Signatures'''
 
| width='90' | '''Signatures'''
|{{Func|util:integer-to-base|$num as xs:integer, $base as xs:integer|xs:string}}<br />
+
|{{Func|convert:integer-to-base|$num as xs:integer, $base as xs:integer|xs:string}}<br />
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
Line 51: Line 51:
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
* {{Code|util:integer-to-base(-1, 16)}} returns the hexadecimal string {{Code|'ffffffffffffffff'}}.
+
* {{Code|convert:integer-to-base(-1, 16)}} returns the hexadecimal string {{Code|'ffffffffffffffff'}}.
* {{Code|util:integer-to-base(22, 5)}} returns {{Code|'42'}}.
+
* {{Code|convert:integer-to-base(22, 5)}} returns {{Code|'42'}}.
 
|}
 
|}
  
==util:integer-from-base==
+
==convert:integer-from-base==
 
{|
 
{|
 
|-
 
|-
 
| width='90' | '''Signatures'''
 
| width='90' | '''Signatures'''
|{{Func|util:integer-from-base|$str as xs:string, $base as xs:integer|xs:integer}}<br />
+
|{{Func|convert:integer-from-base|$str as xs:string, $base as xs:integer|xs:integer}}<br />
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
Line 66: Line 66:
 
| '''Examples'''
 
| '''Examples'''
 
|
 
|
* {{Code|util:integer-from-base('ffffffffffffffff', 16)}} returns {{Code|-1}}.
+
* {{Code|convert:integer-from-base('ffffffffffffffff', 16)}} returns {{Code|-1}}.
* {{Code|util:integer-from-base('CAFEBABE', 16)}} returns {{Code|3405691582}}.
+
* {{Code|convert:integer-from-base('CAFEBABE', 16)}} returns {{Code|3405691582}}.
* {{Code|util:integer-from-base('42', 5)}} returns {{Code|22}}.
+
* {{Code|convert:integer-from-base('42', 5)}} returns {{Code|22}}.
* {{Code|util:integer-from-base(util:integer-to-base(123, 7), 7)}} returns {{Code|123}}.
+
* {{Code|convert:integer-from-base(convert:integer-to-base(123, 7), 7)}} returns {{Code|123}}.
 
|}
 
|}
  

Revision as of 01:39, 27 May 2012

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.