Conversion Functions
This module contains functions to convert data between different formats.
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. 
| Signature | convert:binary-to-string(
  $bytes     as (xs:base64Binary|xs:hexBinary),
  $encoding  as xs:string?                      := (),
  $fallback  as xs:boolean?                     := false()
) as xs:string | 
|---|
| Summary | Converts the specifed $bytesto a string:The UTF-8 default encoding can be overwritten with the optional $encodingargument.By default, invalid characters will be rejected. If $fallbackis set to true, these characters will be replaced with the Unicode replacement characterFFFD(�).
 | 
|---|
| Errors | | encoding | The specified encoding is invalid or not supported. |  | string | The input is an invalid XML string, or the wrong encoding has been specified. | 
 | 
|---|
| Examples | Result:convert:binary-to-string(xs:hexBinary('48656c6c6f576f726c64'))
 'HelloWorld' | 
|---|
| Signature | convert:string-to-base64(
  $string    as xs:string,
  $encoding  as xs:string?  := ()
) as xs:base64Binary | 
|---|
| Summary | Converts the specified $stringto anxs:base64Binaryitem. If the default encoding is chosen, conversion will be cheap, as strings and binaries are both internally represented as byte arrays. The UTF-8 default encoding can be overwritten with the optional$encodingargument. | 
|---|
| Errors | | binary | The input cannot be converted to a binary representation. |  | encoding | The specified encoding is invalid or not supported. | 
 | 
|---|
| Examples | Result:string(convert:string-to-base64('HelloWorld'))
 'SGVsbG9Xb3JsZA==' | 
|---|
| Signature | convert:string-to-hex(
  $string    as xs:string,
  $encoding  as xs:string?  := ()
) as xs:hexBinary | 
|---|
| Summary | Converts the specified $stringto anxs:hexBinaryitem. If the default encoding is chosen, conversion will be cheap, as strings and binaries are both internally represented as byte arrays. The UTF-8 default encoding can be overwritten with the optional$encodingargument. | 
|---|
| Errors | | binary | The input cannot be converted to a binary representation. |  | encoding | The specified encoding is invalid or not supported. | 
 | 
|---|
| Examples | Result:string(convert:string-to-hex('HelloWorld'))
 '48656C6C6F576F726C64' | 
|---|
| Signature | convert:integers-to-base64(
  $integers  as xs:integer*
) as xs:base64Binary | 
|---|
| Summary | Converts the specified $integersto an item of typexs: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.
 | 
|---|
| Examples | Converts a byte sequence to aconvert:integers-to-base64(Q{java:java.lang.String}get-bytes('abc'))
 xs:base64Binaryitem. | 
|---|
| Signature | convert:integers-to-hex(
  $integers  as xs:integer*
) as xs:hexBinary | 
|---|
| Summary | Converts the specified $integersto an item of typexs: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.
 | 
|---|
| Signature | convert:binary-to-integers(
  $binary  as (xs:base64Binary|xs:hexBinary)
) as xs:integer* | 
|---|
| Summary | Returns the specified $binaryas a sequence of unsigned integers (octets). | 
|---|
| Examples | Result:convert:binary-to-integers(xs:hexBinary('FF'))
 255 | 
|---|
| Signature | convert:binary-to-bytes(
  $binary  as (xs:base64Binary|xs:hexBinary)
) as xs:byte* | 
|---|
| Summary | Returns the specified $binaryas 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 | Yields the sequenceconvert:binary-to-bytes(xs:base64Binary('QmFzZVggaXMgY29vbA=='))
 (66, 97, 115, 101, 88, 32, 105, 115, 32, 99, 111, 111, 108).
 Yields the sequenceconvert:binary-to-bytes(xs:hexBinary("4261736558"))
 (66 97 115 101 88). | 
|---|
| Signature | convert:integer-to-base(
  $number  as xs:integer,
  $base    as xs:integer
) as xs:string | 
|---|
| Summary | Converts $numberto a string, using the specified$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 are2, .., 36. | 
|---|
| Errors | | base | The specified base is not in the range 2-36. | 
 | 
|---|
| Examples | Result:convert:integer-to-base(-1, 16)
 'ffffffffffffffff'
 Result:convert:integer-to-base(22, 5)
 '42' | 
|---|
| Signature | convert:integer-from-base(
  $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 2-36. |  | integer | The specified digit is not valid for the given range. | 
 | 
|---|
| Examples | Result:convert:integer-from-base('ffffffffffffffff', 16)
 -1
 Result:convert:integer-from-base('CAFEBABE', 16)
 3405691582
 Result:convert:integer-from-base('42', 5)
 22
 Result:convert:integer-from-base(convert:integer-to-base(123, 7), 7)
 123 | 
|---|
| Signature | convert:integer-to-dateTime(
  $milliseconds  as xs:integer
) as xs:dateTime | 
|---|
| Summary | Converts the specified number of $millisecondssince 1 Jan 1970 to an item of type xs:dateTime. | 
|---|
| Examples | Result:convert:integer-to-dateTime(0)
 xs:dateTime('1970-01-01T00:00:00Z')
 Result:convert:integer-to-dateTime(1234567890123)
 xs:dateTime('2009-02-13T23:31:30.123Z')
 Returns the current miliseconds in theconvert:integer-to-dateTime(prof:current-ms())
 xs:dateTimeformat. | 
|---|
| Signature | convert:dateTime-to-integer(
  $dateTime  as xs:dateTime
) as xs:integer | 
|---|
| Summary | Converts the specified $dateTimeitem to the number of milliseconds since 1 Jan 1970. | 
|---|
| Examples | Result:convert:dateTime-to-integer(xs:dateTime('1970-01-01T00:00:00Z'))
 0 | 
|---|
| Signature | convert:integer-to-dayTime(
  $milliseconds  as xs:integer
) as xs:dayTimeDuration | 
|---|
| Summary | Converts the specified number of $millisecondsto an item of type xs:dayTimeDuration. | 
|---|
| Examples | Result:convert:integer-to-dayTime(1234)
 xs:dayTimeDuration('PT1.234S') | 
|---|
| Signature | convert:dayTime-to-integer(
  $dayTime  as xs:dayTimeDuration
) as xs:integer | 
|---|
| Summary | Converts the specified $dayTimeduration to milliseconds represented by an integer. | 
|---|
| Examples | Result:convert:dayTime-to-integer(xs:dayTimeDuration('PT1S'))
 1000 | 
|---|
The key conversion is employed by the 
JSON Functions and the 
CSV Functions to encode strings to valid element names and back to the original representation:
- If lax conversion is disabled, invalid characters are replaced with underscores or (when invalid as first character of an element name) prefixed with an underscore. The resulting string may be better readable, but it cannot necessarily be converted back to the original form.
- With lax conversion enabled, a string is encoded to a valid NCName representation:
  
    - An empty string is converted to a single underscore (_).
- Existing underscores are rewritten to two underscores (__).
- Characters that are no valid NCName characters are rewritten to an underscore and the character’s four-digit Unicode. For example, the exclamation mark ?is transformed to_003f.
 
| Signature | convert:encode-key(
  $key  as xs:string,
  $lax  as xs:boolean?  := false()
) as xs:string | 
|---|
| Summary | Encodes the specified $key(with the optional$laxconversion method) to a valid NCName representation, which can be used to create an element node. This encoding is employed by the JSON Functions and the CSV Functions. | 
|---|
| Examples | Creates a new element with an encoded name:element { convert:encode-key("!") } { }
 <_0021/>. | 
|---|
| Signature | convert:decode-key(
  $key  as xs:string,
  $lax  as xs:boolean?  := false()
) as xs:string | 
|---|
| Summary | Decodes the specified $key(with the optional$laxconversion method) to the original string representation. Keys supplied to this function can be element names that have been created by the JSON Functions or CSV Functions. | 
|---|
| Errors | | key | The specified key cannot be decoded to its original representation. | 
 | 
|---|
| Examples | Result:convert:decode-key(name(<_0021/>))
 '!'
 Yields the original string representation of all names of a JSON document.json:doc("doc.json")//* ! convert:decode-key(name())
 | 
|---|
| Code | Description | 
|---|
| base | The specified base is not in the range 2-36. | 
| 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. | 
| key | The specified key cannot be decoded to its original representation. | 
| string | The input is an invalid XML string, or the wrong encoding has been specified. | 
Version 9.4Version 9.0Version 8.5Version 7.5Version 7.3- Added: New module added. Some of the functions have been adopted from the obsolete Utility Functions.
⚡Generated with XQuery