Changes

Jump to navigation Jump to search
391 bytes added ,  12:15, 8 June 2018
=Conventions=
All functions and errors in this module are assigned to the <code><nowiki>http://basex.org/modules/convert</nowiki></code> namespace, which is statically bound to the {{Code|convert}} prefix.<br/>All errors are assigned to the <code><nowiki>http://basex.org/errors</nowiki></code> namespace, which is statically bound to the {{Code|bxerr}} prefix.
=Strings=
|-
| '''Summary'''
|Converts the specifed binary data {{Code|$bytes}} ({{Code|xs:base64Binary}}, {{Code|xs:hexBinary}}) to a string:
* The UTF-8 default encoding can be overwritten with the optional {{Code|$encoding}} argument.
* By default, invalid characters will be rejected. If {{Code|$fallback}} is set to true, these characters will be replaced with the Unicode replacement character <code>FFFD</code> (&#xFFFD;).
|-
| '''Errors'''
|{{Error|BXCO0001string|#Errors}} The input is an invalid XML string, or the wrong encoding has been specified.<br/>{{Error|BXCO0002|#Errors}} The specified encoding is invalid or not supported.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|convert:string-to-base64|$input string as xs:string|xs:base64Binary}}<br/>{{Func|convert:string-to-base64|$input string as xs:string, $encoding as xs:string|xs:base64Binary}}
|-
| '''Summary'''
|Converts the specified {{Code|$string }} to a an {{Code|xs:base64Binary}} item. If the default encoding is chosen, conversion will be cheap, as both {{Code|xs:string}} strings and {{Code|xs:base64Binary}} items binaries are both internally represented as byte arrays.<br/>The UTF-8 default encoding can be overwritten with the optional {{Code|$encoding}} argument.
|-
| '''Errors'''
|{{Error|BXCO0001binary|#Errors}} The input cannot be represented in the specified encoding.<br/>{{Error|BXCO0002encoding|#Errors}} The specified encoding is invalid or not supported.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|convert:string-to-hex|$input string as xs:string|xs:hexBinary}}<br/>{{Func|convert:string-to-hex|$input string as xs:string, $encoding as xs:string|xs:hexBinary}}
|-
| '''Summary'''
|Converts the specified {{Code|$string }} to a an {{Code|xs:hexBinary}} item. If the default encoding is chosen, conversion will be cheap, as both {{Code|xs:string}} strings and {{Code|xs:hexBinary}} items binaries are both internally represented as byte arrays.<br/>The UTF-8 default encoding can be overwritten with the optional {{Code|$encoding}} argument.
|-
| '''Errors'''
|{{Error|BXCO0001binary|#Errors}} The input cannot be represented in the specified encoding.<br/>{{Error|BXCO0002encoding|#Errors}} The specified encoding is invalid or not supported.
|-
| '''Examples'''
=Binary Data=
==convert:bytesintegers-to-base64==
{| width='100%'|-| width='120' | '''Signatures'''|{{MarkFunc|Updated with Version 8.7convert:integers-to-base64|$integers as xs:integer*|xs:base64Binary}}: Argument type relaxed from |-| '''Summary'''|Converts the specified {{Code|xs:byte$integers}} to an item of type {{Code|xs:integerbase64Binary}}:* Only the first 8 bits of the supplied integers will be considered.* Conversion of byte sequences is particularly cheap, as items of binary type are internally represented as byte arrays.|} ==convert:integers-to-hex==
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|convert:bytesintegers-to-base64hex|$input integers as xs:integer*|xs:base64BinaryhexBinary}}
|-
| '''Summary'''
|Converts the specified integer sequence {{Code|$integers}} to a an item of type {{Code|xs:base64BinaryhexBinary}} item:* Only the first 8 bits of the supplied integers will be considered. * Conversion of byte sequences is particularly cheap, as {{Code|xs:base64Binary}} items of binary type are internally represented as byte arrays.|-| '''Errors'''|{{Error|BXCO0001|#Errors}} The input cannot be represented in the specified encoding.<br/>{{Error|BXCO0002|#Errors}} The specified encoding is invalid or not supported.
|}
==convert:bytesbinary-to-hexintegers== {{Mark|Updated with Version 8.7}}: Argument type relaxed from {{Code|xs:byte}} to {{Code|xs:integer}}.
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|convert:bytesbinary-to-hexinteger|$input binary as xs:integer*anyAtomicType|xs:hexBinaryinteger*}}
|-
| '''Summary'''
|Converts Returns the specified integer sequence to a {{Code|$binary}} ({{Code|xs:hexBinarybase64Binary}} item. Conversion of byte sequences is particularly cheap, as {{Code|xs:hexBinary}} items are internally represented ) as byte arraysa sequence of unsigned integers (octets).|-| '''Examples'''|* <code>convert:binary-to-integer(xs:hexBinary('FF'))</code> yields {{Code|255}}.
|}
|-
| width='120' | '''Signatures'''
|{{Func|convert:binary-to-bytes|$bin binary as xs:anyAtomicType|xs:byte*}}
|-
| '''Summary'''
|Returns the specified {{Code|$binary data }} ({{Code|xs:base64Binary}}, {{Code|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'''
|-
| width='120' | '''Signatures'''
|{{Func|convert:integer-to-base|$num number as xs:integer, $base as xs:integer|xs:string}}<br />
|-
| '''Summary'''
|Converts {{Code|$numnumber}} to base a string, using the specified {{Code|$base}}, interpreting it as a 64-bit unsigned integer.<br />The first {{Code|$base}} elements of the sequence {{Code|'0',..,'9','a',..,'z'}} are used as digits.<br />Valid bases are {{Code|2, .., 36}}.<br />
|-
| '''Errors'''
|{{Error|BXCO0004base|#Errors}} The specified base is not in the range 2-36.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|convert:integer-from-base|$str string as xs:string, $base as xs:integer|xs:integer}}<br />
|-
| '''Summary'''
|Decodes an {{Code|xs:integer}} from {{Code|$strstring}}, assuming that it's encoded in base using the specified {{Code|$base}}.<br /> The first {{Code|$base}} elements of the sequence {{Code|'0',..,'9','a',..,'z'}} are allowed as digits, ; case doesn't does not matter. <br />Valid bases are 2 - 36.<br /> If {{Code|$str}} the supplied string contains more than 64 bits of information, the result is will be truncated arbitarily.
|-
| '''Errors'''
|{{Error|BXCO0004base|#Errors}} The specified base is not in the range 2-36.<br/>{{Error|BXCO0005integer|#Errors}} The specified digit is not valid for the given range.
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|convert:integer-to-dateTime|$ms milliseconds as xs:integer|xs:dateTime}}<br />
|-
| '''Summary'''
|Converts the specified number of {{Code|$milliseconds }} since 1 Jan 1970 to an item of type xs:dateTime.<br />
|-
| '''Examples'''
|-
| '''Summary'''
|Converts the specified {{Code|$dateTime}} item of type xs:dateTime to the number of milliseconds since 1 Jan 1970.<br />
|-
| '''Examples'''
|-
| width='120' | '''Signatures'''
|{{Func|convert:integer-to-dayTime|$ms milliseconds as xs:integer|xs:dayTimeDuration}}<br />
|-
| '''Summary'''
|Converts the specified number of {{Code|$milliseconds }} to an item of type xs:dayTimeDuration.<br />
|-
| '''Examples'''
|-
| '''Summary'''
|Converts the specified item of type xs:dayTimeDuration {{Code|$dayTime}} duration to milliseconds represented by an integer.<br />
|-
| '''Examples'''
| Description
|-
|{{Code|BXCO0001base}}|The input specified base is an invalid XML string, or not in the wrong encoding has been specified.|range 2-|{{Code|BXCO0002}}|The specified encoding is invalid or not supported36.
|-
|{{Code|BXCO0003binary}}|The specified base is not in the range 2-36input cannot be converted to a binary representation.
|-
|{{Code|BXCO0004encoding}}
|The specified encoding is invalid or not supported.
|-
|{{Code|BXCO0005integer}}
|The specified digit is not valid for the given range.
|-
|{{Code|string}}
|The input is an invalid XML string, or the wrong encoding has been specified.
|}
=Changelog=
;Version 8.7 * Updated: [[#convert:bytes-to-base64|convert:bytes-to-base64]], [[#convert:bytes-to-hex|convert:bytes-to-hex]]: Argument type relaxed from {{Code|xs:byte}} to {{Code|xs:integer}}9.0
* Added: [[#convert:binary-to-integers|convert:binary-to-integers]].
* Updated: [[#convert:integers-to-base64|convert:integers-to-base64]], [[#convert:integers-to-hex|convert:integers-to-hex]]: Renamed from {{Code|convert:bytes-to-base64}}; argument type relaxed from {{Code|xs:byte}} to {{Code|xs:integer}}.
* Updated: error codes updated; errors now use the module namespace
;Version 8.5
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu