Changes

Jump to navigation Jump to search
1,586 bytes added ,  19:27, 24 March 2017
no edit summary
==fetch:binary==
 
{| width='100%'
|-
|-
| '''Summary'''
|Fetches the resource referred to by the given {{Code|$uri}} and returns it as an XML documentnode.<br/>In contrast to <code>fn:doc</code>, each function call returns a different document node. As a consequence, document instances created by this function will not be kept in memory until the end of query evaluation.<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.
|-
| '''Errors'''
<pre class="brush:xquery">
fetch:xml(file:base-dir() || "example.xml")
</pre>
|}
 
==fetch:xml-binary==
 
{{Mark|Introduced with Version 8.7:}}
 
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|fetch:xml-binary|$data as xs:base64Binary|document-node()}}<br/>{{Func|fetch:xml-binary|$data as xs:base64Binary, $options as map(*)|document-node()}}
|-
| '''Summary'''
|Parses binary {{Code|$data}} and returns it as XML document node.<br/>In contrast to fn:parse-xml, which expects an XQuery string, the input of this function can be arbitrarily encoded. The encoding will be derived from the XML declaration or (in case of UTF16 or UTF32) 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:
<pre class="brush:xquery">
fetch:xml-binary(file:read-binary('doc.xml'))
</pre>
* 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:
<pre class="brush:xquery">
fetch:xml-binary(convert:string-to-base64(
"<?xml version='1.0' encoding='CP1252'?><xml>touché</xml>",
"CP1252"
))
</pre>
* Encodes a string as UTF16 and parses it as XML. The document will be correctly decoded, as the first bytes of the data indicate that the input must be UTF16:
<pre class="brush:xquery">
fetch:xml-binary(convert:string-to-base64("<xml/>", "UTF16"))
</pre>
|}
==fetch:content-type==
 
{| width='100%'
|-
=Changelog=
 
;Version 8.0
 
* Added: [[#fetch:xml-binary|fetch:xml-binary]]
;Version 8.5
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu