From BaseX Documentation
This XQuery Module contains functions to convert data between different formats.
[edit] Conventions
All functions and errors in this module are assigned to the http://basex.org/modules/convert
namespace, which is statically bound to the convert
prefix.
[edit] Strings
[edit] convert:binarytostring
Signatures
 convert:binarytostring($bytes as xs:anyAtomicType) as xs:string
convert:binarytostring($bytes as xs:anyAtomicType, $encoding as xs:string) as xs:string
convert:binarytostring($bytes as xs:anyAtomicType, $encoding as xs:string, $fallback as xs:boolean) as xs:string

Summary
 Converts the specifed $bytes (xs:base64Binary , xs:hexBinary ) to a string:
 The UTF8 default encoding can be overwritten with the optional
$encoding argument.
 By default, invalid characters will be rejected. If
$fallback is set to true, these characters will be replaced with the Unicode replacement character FFFD (�).

Errors
 string : 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:binarytostring(xs:hexBinary('48656c6c6f576f726c64')) yields HelloWorld .

[edit] convert:stringtobase64
Signatures
 convert:stringtobase64($string as xs:string) as xs:base64Binary
convert:stringtobase64($string as xs:string, $encoding as xs:string) as xs:base64Binary

Summary
 Converts the specified $string to an xs:base64Binary item. If the default encoding is chosen, conversion will be cheap, as strings and binaries are both internally represented as byte arrays. The UTF8 default encoding can be overwritten with the optional $encoding argument.

Errors
 binary : The input cannot be represented in the specified encoding.
encoding : The specified encoding is invalid or not supported.

Examples


string(convert:stringtobase64('HelloWorld')) yields SGVsbG9Xb3JsZA== .

[edit] convert:stringtohex
Signatures
 convert:stringtohex($string as xs:string) as xs:hexBinary
convert:stringtohex($string as xs:string, $encoding as xs:string) as xs:hexBinary

Summary
 Converts the specified $string to an xs:hexBinary item. If the default encoding is chosen, conversion will be cheap, as strings and binaries are both internally represented as byte arrays. The UTF8 default encoding can be overwritten with the optional $encoding argument.

Errors
 binary : The input cannot be represented in the specified encoding.
encoding : The specified encoding is invalid or not supported.

Examples


string(convert:stringtohex('HelloWorld')) yields 48656C6C6F576F726C64 .

[edit] Binary Data
[edit] convert:integerstobase64
Signatures
 convert:integerstobase64($integers as xs:integer*) as xs:base64Binary

Summary
 Converts the specified $integers to an item of type xs:base64Binary :
 Only the first 8 bits of the supplied integers will be considered.
 Conversion of byte sequences is very efficient, as items of binary type are internally represented as byte arrays.

[edit] convert:integerstohex
Signatures
 convert:integerstohex($integers as xs:integer*) as xs:hexBinary

Summary
 Converts the specified $integers to an item of type xs:hexBinary :
 Only the first 8 bits of the supplied integers will be considered.
 Conversion of byte sequences is very efficient, as items of binary type are internally represented as byte arrays.

[edit] convert:binarytointegers
Signatures
 convert:binarytointegers($binary as xs:anyAtomicType) as xs:integer*

Summary
 Returns the specified $binary (xs:base64Binary , xs:hexBinary ) as a sequence of unsigned integers (octets).

Examples


convert:binarytointegers(xs:hexBinary('FF')) yields 255 .

[edit] convert:binarytobytes
Signatures
 convert:binarytobytes($binary as xs:anyAtomicType) as xs:byte*

Summary
 Returns the specified $binary (xs:base64Binary , xs:hexBinary ) as a sequence of bytes. The conversion is very cheap and takes no additional memory, as items of binary type are internally represented as byte arrays.

Examples


convert:binarytobytes(xs:base64Binary('QmFzZVggaXMgY29vbA==')) yields the sequence (66, 97, 115, 101, 88, 32, 105, 115, 32, 99, 111, 111, 108) .

convert:binarytobytes(xs:hexBinary("4261736558")) yields the sequence (66 97 115 101 88) .

[edit] Numbers
[edit] convert:integertobase
Signatures
 convert:integertobase($number as xs:integer, $base as xs:integer) as xs:string

Summary
 Converts $number to a string, using the specified $base , interpreting it as a 64bit unsigned integer. The first base elements of the sequence '0',..,'9','a',..,'z' are used as digits. Valid bases are 2, .., 36 .

Errors
 base : The specified base is not in the range 236.

Examples


convert:integertobase(1, 16) yields 'ffffffffffffffff' .

convert:integertobase(22, 5) yields '42' .

[edit] convert:integerfrombase
Signatures
 convert:integerfrombase($string as xs:string, $base as xs:integer) as xs:integer

Summary
 Decodes an integer from $string , using the specified $base . The first base elements of the sequence '0',..,'9','a',..,'z' are allowed as digits; case does not matter. Valid bases are 2  36. If the supplied string contains more than 64 bits of information, the result will be truncated.

Errors
 base : The specified base is not in the range 236.
integer : The specified digit is not valid for the given range.

Examples


convert:integerfrombase('ffffffffffffffff', 16) yields 1 .

convert:integerfrombase('CAFEBABE', 16) yields 3405691582 .

convert:integerfrombase('42', 5) yields 22 .

convert:integerfrombase(convert:integertobase(123, 7), 7) yields 123 .

[edit] Dates and Durations
[edit] convert:integertodateTime
Signatures
 convert:integertodateTime($milliseconds as xs:integer) as xs:dateTime

Summary
 Converts the specified number of $milliseconds since 1 Jan 1970 to an item of type xs:dateTime.

Examples


convert:integertodateTime(0) yields 19700101T00:00:00Z .

convert:integertodateTime(1234567890123) yields 20090213T23:31:30.123Z .

convert:integertodateTime(prof:currentms()) returns the current miliseconds in the xs:dateTime format.

[edit] convert:dateTimetointeger
Signatures
 convert:dateTimetointeger($dateTime as xs:dateTime) as xs:integer

Summary
 Converts the specified $dateTime item to the number of milliseconds since 1 Jan 1970.

Examples


convert:dateTimetointeger(xs:dateTime('19700101T00:00:00Z')) yields 0 .

[edit] convert:integertodayTime
Signatures
 convert:integertodayTime($milliseconds as xs:integer) as xs:dayTimeDuration

Summary
 Converts the specified number of $milliseconds to an item of type xs:dayTimeDuration.

Examples


convert:integertodayTime(1234) yields PT1.234S .

[edit] convert:dayTimetointeger
Signatures
 convert:dayTimetointeger($dayTime as xs:dayTimeDuration) as xs:integer

Summary
 Converts the specified $dayTime duration to milliseconds represented by an integer.

Examples


convert:dayTimetointeger(xs:dayTimeDuration('PT1S')) yields 1000 .

[edit] Errors
Code
 Description

base
 The specified base is not in the range 236.

binary
 The input cannot be converted to a binary representation.

encoding
 The specified encoding is invalid or not supported.

integer
 The specified digit is not valid for the given range.

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

[edit] Changelog
 Version 9.0
 Version 8.5
 Version 7.5
The module was introduced with Version 7.3. Some of the functions have been adopted from the obsolete Utility Module.