Difference between revisions of "Conversion Module"
Jump to navigation
Jump to search
m (Text replacement - "'''Signatures'''" to "'''Signature'''") |
|||
| Line 13: | Line 13: | ||
| width='120' | '''Signature''' | | width='120' | '''Signature''' | ||
|<pre>convert:binary-to-string( | |<pre>convert:binary-to-string( | ||
| − | $bytes as xs:anyAtomicType | + | $bytes as xs:anyAtomicType, |
| − | $encoding as xs:string := () | + | $encoding as xs:string := (), |
$fallback as xs:boolean := () | $fallback as xs:boolean := () | ||
) as xs:string</pre> | ) as xs:string</pre> | ||
| Line 37: | Line 37: | ||
| width='120' | '''Signature''' | | width='120' | '''Signature''' | ||
|<pre>convert:string-to-base64( | |<pre>convert:string-to-base64( | ||
| − | $string as xs:string | + | $string as xs:string, |
$encoding as xs:string := () | $encoding as xs:string := () | ||
) as xs:base64Binary</pre> | ) as xs:base64Binary</pre> | ||
| Line 58: | Line 58: | ||
| width='120' | '''Signature''' | | width='120' | '''Signature''' | ||
|<pre>convert:string-to-hex( | |<pre>convert:string-to-hex( | ||
| − | $string as xs:string | + | $string as xs:string, |
$encoding as xs:string := () | $encoding as xs:string := () | ||
) as xs:hexBinary</pre> | ) as xs:hexBinary</pre> | ||
| Line 152: | Line 152: | ||
| width='120' | '''Signature''' | | width='120' | '''Signature''' | ||
|<pre>convert:integer-to-base( | |<pre>convert:integer-to-base( | ||
| − | $number as xs:integer | + | $number as xs:integer, |
$base as xs:integer | $base as xs:integer | ||
) as xs:string</pre> | ) as xs:string</pre> | ||
| Line 174: | Line 174: | ||
| width='120' | '''Signature''' | | width='120' | '''Signature''' | ||
|<pre>convert:integer-from-base( | |<pre>convert:integer-from-base( | ||
| − | $string as xs:string | + | $string as xs:string, |
$base as xs:integer | $base as xs:integer | ||
) as xs:integer</pre> | ) as xs:integer</pre> | ||
| Line 272: | Line 272: | ||
| width='120' | '''Signature''' | | width='120' | '''Signature''' | ||
|<pre>convert:encode-key( | |<pre>convert:encode-key( | ||
| − | $key as xs:string | + | $key as xs:string, |
$lax as xs:boolean := () | $lax as xs:boolean := () | ||
) as xs:string</pre> | ) as xs:string</pre> | ||
| Line 295: | Line 295: | ||
| width='120' | '''Signature''' | | width='120' | '''Signature''' | ||
|<pre>convert:decode-key( | |<pre>convert:decode-key( | ||
| − | $key as xs:string | + | $key as xs:string, |
$lax as xs:boolean := () | $lax as xs:boolean := () | ||
) as xs:string</pre> | ) as xs:string</pre> | ||
Revision as of 15:24, 9 March 2023
This XQuery Module contains functions to convert data between different formats.
Contents
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.
Strings
convert:binary-to-string
| Signature | convert:binary-to-string( $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:
|
| 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:string-to-base64
| Signature | convert:string-to-base64( $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 UTF-8 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 |
|
convert:string-to-hex
| Signature | convert:string-to-hex( $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 UTF-8 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 |
|
Binary Data
convert:integers-to-base64
| Signature | convert:integers-to-base64( $integers as xs:integer* ) as xs:base64Binary |
| Summary | Converts the specified $integers to an item of type xs:base64Binary:
|
| Examples |
|
convert:integers-to-hex
| Signature | convert:integers-to-hex( $integers as xs:integer* ) as xs:hexBinary |
| Summary | Converts the specified $integers to an item of type xs:hexBinary:
|
convert:binary-to-integers
| Signature | convert:binary-to-integers( $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:binary-to-bytes
| Signature | convert:binary-to-bytes( $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 |
|
Numbers
convert:integer-to-base
| Signature | convert:integer-to-base( $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 64-bit 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 2-36.
|
| Examples |
|
convert:integer-from-base
| 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 |
|
Dates and Durations
convert:integer-to-dateTime
| Signature | convert:integer-to-dateTime( $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:dateTime-to-integer
| Signature | convert:dateTime-to-integer( $dateTime as xs:dateTime ) as xs:integer |
| Summary | Converts the specified $dateTime item to the number of milliseconds since 1 Jan 1970. |
| Examples |
|
convert:integer-to-dayTime
| Signature | convert:integer-to-dayTime( $milliseconds as xs:integer ) as xs:dayTimeDuration |
| Summary | Converts the specified number of $milliseconds to an item of type xs:dayTimeDuration. |
| Examples |
|
convert:dayTime-to-integer
| Signature | convert:dayTime-to-integer( $dayTime as xs:dayTimeDuration ) as xs:integer |
| Summary | Converts the specified $dayTime duration to milliseconds represented by an integer. |
| Examples |
|
Keys
convert:encode-key
| Signature | convert:encode-key( $key as xs:string, $lax as xs:boolean := () ) as xs:string |
| Summary | Encodes the specified $key (with the optional $lax conversion method) to a valid NCName representation, which can be used to create an element node:
This encoding is employed by the |
| Examples |
|
convert:decode-key
| Signature | convert:decode-key( $key as xs:string, $lax as xs:boolean := () ) as xs:string |
| Summary | Decodes the specified $key (with the optional $lax conversion method) to the original string representation.Keys supplied to this function are usually element names from documents that have been created with the JSON Module or CSV Module. |
| Examples |
|
| Errors | key: The specified key cannot be decoded to its original representation.
|
Errors
| 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. |
Changelog
- Version 9.4
- Added:
convert:encode-key,convert:decode-key.
- Version 9.0
- Added:
convert:binary-to-integers. - Updated:
convert:integers-to-base64,convert:integers-to-hex: Renamed fromconvert:bytes-to-base64; argument type relaxed fromxs:bytetoxs:integer. - Updated: error codes updated; errors now use the module namespace
- Version 8.5
- Updated:
convert:binary-to-string:$fallbackargument added.
- Version 7.5
- Added:
convert:integer-to-dateTime,convert:dateTime-to-integer,convert:integer-to-dayTime,convert:dayTime-to-integer.
The module was introduced with Version 7.3. Some of the functions have been adopted from the obsolete Utility Module.