| '''Summary'''
|Fetches the resource referred to by the given {{Code|href}} 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 differs from {{Code|fn:doc}} in various aspects:
* It is ''non-deterministicnondeterministic'', 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).
|
* Retrieve an XML representation of the English Wikipedia main HTML page with whitespace stripped:
<syntaxhighlight pre lang="'xquery"'>
fetch:doc("http://en.wikipedia.org", map { 'stripws': true() })
</syntaxhighlightpre>
* Return a web page as XML, preserve namespaces:
<syntaxhighlight pre lang="'xquery"'>
fetch:doc(
'http://basex.org/',
}
)
</syntaxhighlightpre>
|}
|
* Retrieves file input as binary data and parses it as XML:
<syntaxhighlight pre lang="'xquery"'>
fetch:binary-doc(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:binary-doc(convert:string-to-base64(
"<?xml version='1.0' encoding='CP1252'?><xml>touché</xml>",
"CP1252"
))
</syntaxhighlightpre>
* Encodes a string as 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 UTF-16:
<syntaxhighlight pre lang="'xquery"'>
fetch:binary-doc(convert:string-to-base64("<xml/>", "UTF16"))
</syntaxhighlightpre>
|- valign="top"
| '''Errors'''