Changes

Jump to navigation Jump to search
950 bytes added ,  09:51, 25 June 2020
* 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'''
|
* <code>convert:integers-to-base64(Q{java:java.lang.String}get-bytes('abc'))</code> converts a byte sequence to a {{Code|xs:base64Binary}} item.
|}
=Keys=
==convert:decodeencode-key==
{{Mark|Introduced with Version 9.4:}}
|-
| width='120' | '''Signatures'''
|{{Func|convert:decodeencode-key|$key as xs:string|xs:string}}<br />{{Func|convert:decodeencode-key|$key as xs:string, $lax as xs:boolean|xs:string}}<br />
|-
| '''Summary'''
|Decodes Encodes the specified {{Code|$key}} to its original string representation, using (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|_}}).<br />Keys supplied * Existing underscores are rewritten to this function two underscores ({{Code|__}}).* Characters that are usually 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 names from documents that have been created 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]] and the {{Code|direct}} conversion format.
|-
| '''Examples'''
|
* <code>element { convert:decodeencode-key('_0021')"!")} { }</code> yields creates a new element with an encoded name: <code>!<_0021/code>.* <code>json:doc("doc.json")//* ! convert:decode-key(name())</code> yields the original string representation of all names of a JSON document.
|}
==convert:encodedecode-key==
{{Mark|Introduced with Version 9.4:}}
|-
| width='120' | '''Signatures'''
|{{Func|convert:encodedecode-key|$key as xs:string|xs:string}}<br />{{Func|convert:encodedecode-key|$key as xs:string, $lax as xs:boolean|xs:string}}<br />
|-
| '''Summary'''
|Encodes Decodes the specified {{Code|$key}} to a format that can be used to create an element node, using (with the optional {{Code|$lax}} conversion method) to the original string representation.<br />The encoding is the same Keys supplied to this function are usually element names from documents that is used in have been created with the [[JSON Module]] and the or [[CSV Module]] and the {{Code|direct}} conversion format.
|-
| '''Examples'''
|
* <code>element { convert:encodedecode-key(name(<_0021/>))</code> yields <code>!</code>.* <code>json:doc("doc.json")//* !"convert:decode-key(name()) } { 'text' }</code> creates yields the original string representation of all names of a new element with an encoded name JSON document.|-| '''Errors'''|{{Error|key|#Errors}} The specified keycannot 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}}
;Version 9.4
* Added: [[#convert:name-toencode-key|convert:name-toencode-key]], [[#convert:decode-key-to-name|convert:decode-key-to-name]].
;Version 9.0
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu