Changes

Jump to navigation Jump to search
192 bytes added ,  18:34, 1 December 2023
m
Text replacement - "<syntaxhighlight lang="xquery">" to "<pre lang='xquery'>"
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|<pre>fetch:binary|( $uri href as xs:string|) as xs:base64Binary}}<br/pre>|-valign="top"
| '''Summary'''
|Fetches the resource referred to by the given URI {{Code|href}} string and returns it as [[Lazy Module|lazy]] {{Code|xs:base64Binary}} item.|-valign="top"
| '''Errors'''
|{{Error|open|#Errors}} the URI could not be resolved, or the resource could not be retrieved.
|-valign="top"
| '''Examples'''
|
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|fetch:text|$uri as xs:string|xs:string}}<br/pre>{{Func|fetch:text|( $uri href as xs:string, $encoding as xs:string|xs :string}}<br/>{{Func|fetch:text|$uri as xs:string, $encoding as xs:string= (), $fallback as xs:boolean|? := false()) as xs:string}}<br/pre>|-valign="top"
| '''Summary'''
|Fetches the resource referred to by the given {{Code|$urihref}} string and returns it as [[Lazy Module|lazy]] {{Code|xs:string}} item:
* 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;).
|-valign="top"
| '''Errors'''
|{{Error|open|#Errors}} the URI could not be resolved, or the resource could not be retrieved.<br/>{{Error|encoding|#Errors}} the specified encoding is not supported, or unknown.
|-valign="top"
| '''Examples'''
|
|}
==fetch:xmldoc==
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|fetch:xml|$uri as xs:string|document-node()}}<br/pre>{{Func|fetch:xml|doc( $uri href as xs:string, $options as map(*)?| := map { }) as document-node()}}</pre>|-valign="top"
| '''Summary'''
|Fetches the resource referred to by the given {{Code|$urihref}} string 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''nondeterministic'', 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).
|-valign="top"
| '''Errors'''
|{{Error|open|#Errors}} the URI could not be resolved, or the resource could not be retrieved.
|-valign="top"
| '''Examples'''
|
* Retrieve an XML representation of the English Wikipedia main HTML page, chop all with whitespace nodesstripped:<syntaxhighlight pre 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")</syntaxhighlightpre>
* Return a web page as XML, preserve namespaces:
<syntaxhighlight pre lang="'xquery"'>fetch:xmldoc(
'http://basex.org/',
map {
}
)
</syntaxhighlightpre>
|}
==fetch:xmlbinary-binarydoc==
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|<pre>fetch:xml-binary|$data as xs:base64Binary|document-nodedoc()}}<br/>{{Func|fetch:xml-binary| $data input as xs:base64BinaryanyAtomicType, $options as map(*)?| := map { }) as document-node()}}</pre>|-valign="top"
| '''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.|-valign="top"
| '''Examples'''
|
* Retrieves file input as binary data and parses it as XML:
<syntaxhighlight pre lang="'xquery"'>fetch:xmlbinary-binarydoc(file:read-binary('doc.xml'))</syntaxhighlightpre>
* 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 pre lang="'xquery"'>fetch:xmlbinary-binarydoc(convert:string-to-base64(
"<?xml version='1.0' encoding='CP1252'?><xml>touché</xml>",
"CP1252"
))
</syntaxhighlightpre>* 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 pre lang="'xquery"'>fetch:xmlbinary-binarydoc(convert:string-to-base64("<xml/>", "UTF16"))</syntaxhighlightpre>|- valign="top"| '''Errors'''|{{Error|open|#Errors}} the input could not be parsed.
|}
{| width='100%'
|-valign="top"| width='120' | '''SignaturesSignature'''|{{Func|<pre>fetch:content-type|( $uri href as xs:string|) as xs:string}}<br/pre>|-valign="top"
| '''Summary'''
|Returns the content-type (also called mime-type) of the resource specified by {{Code|$urihref}}string:
* If a remote resource is addressed, the request header will be evaluated.
* If the addressed resource is locally stored, the content-type will be guessed based on the file extension.
|-valign="top"
| '''Errors'''
|{{Error|open|#Errors}} the URI could not be resolved, or the resource could not be retrieved.
|-valign="top"
| '''Examples'''
|
! width="110"|Code
|Description
|-valign="top"
|{{Code|encoding}}
|The specified encoding is not supported, or unknown.
|-valign="top"
|{{Code|open}}
|The URI could not be resolved, or the resource could not be retrieved.
=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|FetchCode|fetch:xml-binary}}
* Updated: error codes updated; errors now use the module namespace
;Version 8.5
 * Updated: {{Function|Fetch|fetch:text}}: <code>$fallback</code> argument added.
;Version 8.0
 * Added: {{Function|FetchCode|fetch:xml}}
The module was introduced with Version 7.6.
Bureaucrats, editor, reviewer, Administrators
13,554

edits

Navigation menu