Changes

Jump to navigation Jump to search
71 bytes added ,  10:30, 20 July 2022
no edit summary
|}
==fetch:xmldoc==
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|fetch:xmldoc|$uri as xs:string|document-node()}}<br/>{{Func|fetch:xmldoc|$uri as xs:string, $options as map(*)?|document-node()}}
|-
| '''Summary'''
|Fetches the resource referred to by the given {{Code|$uri}} and returns it as a document node.<br/>The {{Code|$options}} argument can be used to change the parsing behavior. Allowed options are all [[Options#Parsing|parsing]] and [[Options#XML Parsing|XML parsing]] options in lower case.<br/>The function is different to <code>differs from {{Code|fn:doc</code> }} in various aspects:* As it It is ''non-deterministic'', i.e., a new document node will be created by each call of this function.
* A document created by this function will be garbage-collected as soon as it is not referenced anymore.
* URIs will not be resolved against existing databases. As a result, it will not trigger any locks (see [[Transaction Management#Limitations|limitations of database locking]] for more details).
| '''Examples'''
|
* Retrieve an XML representation of the English Wikipedia main HTML page, chop all with whitespace nodesstripped:
<syntaxhighlight lang="xquery">
fetch:xmldoc("http://en.wikipedia.org", map { 'chopstripws': true() })</syntaxhighlight>* Return a document located in the current base directory:<syntaxhighlight lang="xquery">fetch:xml(file:base-dir() || "example.xml")
</syntaxhighlight>
* Return a web page as XML, preserve namespaces:
<syntaxhighlight lang="xquery">
fetch:xmldoc(
'http://basex.org/',
map {
|}
==fetch:xmlbinary-binarydoc==
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|fetch:xmlbinary-binarydoc|$data input as xs:base64BinaryanyAtomicType|document-node()}}<br/>{{Func|fetch:xmlbinary-binarydoc|$data as xs:base64BinaryanyAtomicType, $options as map(*)?|document-node()}}
|-
| '''Summary'''
|Parses binary Converts the specified {{Code|$datainput}} ({{Code|xs:base64Binary}}, {{Code|xs:hexBinary}}) to XML and returns it as a document node.<br/>In contrast to {{Code|fn:parse-xml}}, which expects an XQuery a string, the input of this function can be arbitrarily encoded. The encoding will be derived from the XML declaration or (in case of UTF16 UTF-16 or UTF32UTF-32) from the first bytes of the input.<br/>The {{Code|$options}} argument can be used to change the parsing behavior. Allowed options are all [[Options#Parsing|parsing]] and [[Options#XML Parsing|XML parsing]] options in lower case.
|-
| '''Examples'''
* Retrieves file input as binary data and parses it as XML:
<syntaxhighlight lang="xquery">
fetch:xmlbinary-binarydoc(file:read-binary('doc.xml'))
</syntaxhighlight>
* Encodes a string as CP1252 and parses it as XML. The input and the string {{Code|touché}} will be correctly decoded because of the XML declaration:
<syntaxhighlight lang="xquery">
fetch:xmlbinary-binarydoc(convert:string-to-base64(
"<?xml version='1.0' encoding='CP1252'?><xml>touché</xml>",
"CP1252"
))
</syntaxhighlight>
* Encodes a string as UTF16 UTF-16 and parses it as XML. The document will be correctly decoded, as the first bytes of the data indicate that the input must be UTF16UTF-16:
<syntaxhighlight lang="xquery">
fetch:xmlbinary-binarydoc(convert:string-to-base64("<xml/>", "UTF16"))
</syntaxhighlight>
|}
=Changelog=
 
;Version 10.0
* Updated: {{Function||fetch:doc}} renamed (before: {{Code|fetch:xml}}).
* Updated: {{Function||fetch:binary-doc}} renamed (before: {{Code|fetch:xml-binary}}).
;Version 9.0
 * Added: {{Function|Code|fetch:xml-binary}}
* Updated: error codes updated; errors now use the module namespace
;Version 8.5
 
* Updated: {{Function||fetch:text}}: <code>$fallback</code> argument added.
;Version 8.0
 * Added: {{Function|Code|fetch:xml}}
The module was introduced with Version 7.6.
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu