xdmp:resolve-uri( $relative as xs:string?, [$base as xs:string] ) as xs:anyURI?
Resolves a relative URI against an absolute URI. If $base is specified, the URI is resolved relative to that base. If $base is not specified, the base is set to the base-uri property from the static context, if the property exists; if it does not exist, an error is thrown.
Parameters | |
---|---|
relative | A URI reference to resolve against the base. |
base | An absolute URI to use as the base of the resolution. |
This function is the same as fn:resolve-uri(), but always accepts a relative base URI. The fn:resolve-uri() function raises an error in this case in standards compatible dialects.
If $base is specified, it is assumed to be an absolute URI and $relative is assumed to be an absolute or a relative URI reference. If $relative is a relative URI reference, it is resolved against $base, using an algorithm such as the ones described in [RFC 2396] or [RFC 3986], and the resulting absolute URI reference is returned.
If $relative is the zero-length string, fn:resolve-uri
returns
the value of $base, or the base-uri property from the static context
if there is no $base value specified (if the base-uri property is
not initialized in the static context, an error is raised).
Resolving a URI does not dereference it. This is merely a syntactic operation on two character strings.
xdmp:resolve-uri("hello/goodbye.xml", "/mycompany/default.xqy") => /mycompany/hello/goodbye.xml