Fetch Module
Jump to navigation
Jump to search
This XQuery Module provides simple functions to fetch the content of resources identified by URIs. Resources can be stored locally or remotely and e.g. use the file:// or http:// scheme. If more control over HTTP requests is required, the HTTP Module can be used. With the HTML Module, retrieved HTML documents can be converted to XML.
Conventions
All functions and errors in this module are assigned to the http://basex.org/modules/fetch namespace, which is statically bound to the fetch prefix.
URI arguments can point be URLs or point to local files. Relative file paths will be resolved against the current working directory (for more details, have a look at the File Module).
Functions
fetch:binary
| Signatures | fetch:binary($uri as xs:string) as xs:base64Binary |
| Summary | Fetches the resource referred to by the given URI and returns it as lazy xs:base64Binary item.
|
| Errors | open: the URI could not be resolved, or the resource could not be retrieved.
|
| Examples |
|
fetch:text
| Signatures | fetch:text($uri as xs:string) as xs:stringfetch:text($uri as xs:string, $encoding as xs:string) as xs:stringfetch:text($uri as xs:string, $encoding as xs:string, $fallback as xs:boolean) as xs:string |
| Summary | Fetches the resource referred to by the given $uri and returns it as lazy xs:string item:
|
| Errors | open: the URI could not be resolved, or the resource could not be retrieved.encoding: the specified encoding is not supported, or unknown.
|
| Examples |
|
fetch:xml
| Signatures | fetch:xml($uri as xs:string) as document-node()fetch:xml($uri as xs:string, $options as map(*)?) as document-node()
|
| Summary | Fetches the resource referred to by the given $uri and returns it as document node.In contrast to fn:doc, 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.The $options argument can be used to change the parsing behavior. Allowed options are all parsing and XML parsing options in lower case.
|
| Errors | open: the URI could not be resolved, or the resource could not be retrieved.
|
| Examples |
fetch:xml("http://en.wikipedia.org", map { 'chop': true() })
fetch:xml(file:base-dir() || "example.xml")
fetch:xml(
'http://basex.org/',
map {
'parser': 'html',
'htmlparser': map { 'nons': false() }
}
)
|
fetch:xml-binary
| Signatures | fetch:xml-binary($data as xs:base64Binary) as document-node()fetch:xml-binary($data as xs:base64Binary, $options as map(*)?) as document-node()
|
| Summary | Parses binary $data and returns it as document node.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. The $options argument can be used to change the parsing behavior. Allowed options are all parsing and XML parsing options in lower case.
|
| Examples |
fetch:xml-binary(file:read-binary('doc.xml'))
fetch:xml-binary(convert:string-to-base64( "<?xml version='1.0' encoding='CP1252'?><xml>touché</xml>", "CP1252" ))
fetch:xml-binary(convert:string-to-base64("<xml/>", "UTF16"))
|
fetch:content-type
| Signatures | fetch:content-type($uri as xs:string) as xs:string |
| Summary | Returns the content-type (also called mime-type) of the resource specified by $uri:
|
| Errors | open: the URI could not be resolved, or the resource could not be retrieved.
|
| Examples |
|
fetch:doc
| Signatures | fetch:doc($uri as xs:string) as document-node()
|
| Summary | Retrieves the document from the specified $uri and returns it as document node.The only difference to fn:doc is that documents in databases will be ignored. As a consequence, the function call will never lead to database locks.
|
fetch:collection
| Signatures | fetch:collection($uri as xs:string) as document-node()*
|
| Summary | Retrieves all documents from the specified $uri and returns a sequence of document nodes.The only difference to fn:collection is that documents in databases will be ignored. As a consequence, the function call will never lead to database locks.
|
Errors
| Code | Description |
|---|---|
encoding
|
The specified encoding is not supported, or unknown. |
open
|
The URI could not be resolved, or the resource could not be retrieved. |
Changelog
- Version 9.3
- Added: fetch:doc, fetch:collection
- Version 9.0
- Added: fetch:xml-binary
- Updated: error codes updated; errors now use the module namespace
- Version 8.5
- Updated: fetch:text:
$fallbackargument added.
- Version 8.0
- Added: fetch:xml
The module was introduced with Version 7.6.