Changes

Jump to navigation Jump to search
2,592 bytes added ,  09:51, 25 June 2020
|Converts the specified {{Code|$integers}} to an item of type {{Code|xs:base64Binary}}:
* Only the first 8 bits of the supplied integers will be considered.
* Conversion of byte sequences is particularly cheapvery efficient, as items of binary type are internally represented as byte arrays.|-| '''Examples'''|* <code>convert:integers-to-base64(Q{java:java.lang.String}get-bytes('abc'))</code> converts a byte sequence to a {{Code|xs:base64Binary}} item.
|}
|Converts the specified {{Code|$integers}} to an item of type {{Code|xs:hexBinary}}:
* Only the first 8 bits of the supplied integers will be considered.
* Conversion of byte sequences is particularly cheapvery efficient, as items of binary type are internally represented as byte arrays.
|}
|-
| width='120' | '''Signatures'''
|{{Func|convert:binary-to-integerintegers|$binary as xs:anyAtomicType|xs:integer*}}
|-
| '''Summary'''
| '''Examples'''
|
* <code>convert:binary-to-integerintegers(xs:hexBinary('FF'))</code> yields {{Code|255}}.
|}
|
* {{Code|convert:dayTime-to-integer(xs:dayTimeDuration('PT1S'))}} yields {{Code|1000}}.
|}
 
=Keys=
 
==convert:encode-key==
 
{{Mark|Introduced with Version 9.4:}}
 
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|convert:encode-key|$key as xs:string|xs:string}}<br />{{Func|convert:encode-key|$key as xs:string, $lax as xs:boolean|xs:string}}<br />
|-
| '''Summary'''
|Encodes the specified {{Code|$key}} (with the optional {{Code|$lax}} conversion method) to a valid NCName representation, which can be used to create an element node:
* An empty string is converted to a single underscore ({{Code|_}}).
* Existing underscores are rewritten to two underscores ({{Code|__}}).
* Characters that are no valid NCName characters are rewritten to an underscore and the character’s four-digit Unicode. For example, the exclamation mark {{Code|?}} is transformed to {{Code|_003f}}.
* If lax conversion is chosen, 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.
This encoding is employed by the {{Code|direct}} conversion format in the [[JSON Module]] and the [[CSV Module]].
|-
| '''Examples'''
|
* <code>element { convert:encode-key("!") } { }</code> creates a new element with an encoded name: <code><_0021/></code>.
|}
 
==convert:decode-key==
 
{{Mark|Introduced with Version 9.4:}}
 
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|convert:decode-key|$key as xs:string|xs:string}}<br />{{Func|convert:decode-key|$key as xs:string, $lax as xs:boolean|xs:string}}<br />
|-
| '''Summary'''
|Decodes the specified {{Code|$key}} (with the optional {{Code|$lax}} conversion method) to the original string representation.<br />Keys supplied to this function are usually element names from documents that have been created with the [[JSON Module]] or [[CSV Module]].
|-
| '''Examples'''
|
* <code>convert:decode-key(name(<_0021/>))</code> yields <code>!</code>.
* <code>json:doc("doc.json")//* ! convert:decode-key(name())</code> yields the original string representation of all names of a JSON document.
|-
| '''Errors'''
|{{Error|key|#Errors}} The specified key cannot be decoded to its original representation.
|}
|{{Code|integer}}
|The specified digit is not valid for the given range.
|-
|{{Code|key}}
|The specified key cannot be decoded to its original representation.
|-
|{{Code|string}}
=Changelog=
 
;Version 9.4
 
* Added: [[#convert:encode-key|convert:encode-key]], [[#convert:decode-key|convert:decode-key]].
;Version 9.0
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu