Package net.sf.saxon.functions

## Class ResolveURI

- java.lang.Object
- - net.sf.saxon.functions.AbstractFunction
  - - net.sf.saxon.functions.SystemFunction
    - - net.sf.saxon.functions.ResolveURI

- All Implemented Interfaces:
    `Callable`, `Function`, `GroundedValue`, `Item`, `Sequence`

      public class ResolveURI
      extends SystemFunction

  This class supports the resolve-uri() function in XPath 2.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ResolveURI()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ZeroOrOne` | `call​(XPathContext context, Sequence[] arguments)` | Evaluate the expression
    `static java.lang.String` | `escapeSpaces​(java.lang.String s)` | Replace spaces by %20
    `static java.net.URI` | `makeAbsolute​(java.lang.String relativeURI, java.lang.String base)` | Construct an absolute URI from a relative URI and a base URI.
    `static java.lang.String` | `tryToExpand​(java.lang.String systemId)` | If a system ID can't be parsed as a URL, try to expand it as a relative URI using the current directory as the base URI.
    `static java.lang.String` | `unescapeSpaces​(java.lang.String uri)` | Replace %20 by space

    - ### Methods inherited from class net.sf.saxon.functions.SystemFunction

      `dependsOnContextItem, dynamicCall, equals, export, exportAdditionalArguments, exportAttributes, fixArguments, getArity, getCardinality, getCompilerName, getContextNode, getDescription, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getFunctionName, getIntegerBounds, getNetCost, getOperandRoles, getRequiredType, getResultItemType, getResultItemType, getRetainedStaticContext, getSpecialProperties, getStaticBaseUriString, getStreamerName, importAttributes, isTrustedResultType, makeCall, makeFunction, makeFunctionCall, makeOptimizedFunctionCall, resultIfEmpty, setArity, setDetails, setRetainedStaticContext, supplyTypeInformation, toShortString, toString, typeCheckCaller`

    - ### Methods inherited from class net.sf.saxon.functions.AbstractFunction

      `atomize, deepEquals, effectiveBooleanValue, getAnnotations, getStringValue, getStringValueCS, isArray, isMap, makeNewContext, simplify, typeCheck`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface net.sf.saxon.om.Function

      `getGenre`

    - ### Methods inherited from interface net.sf.saxon.om.GroundedValue

      `asIterable, concatenate, containsNode, materialize`

    - ### Methods inherited from interface net.sf.saxon.om.Item

      `getLength, head, isStreamed, itemAt, iterate, reduce, subsequence`

    - ### Methods inherited from interface net.sf.saxon.om.Sequence

      `makeRepeatable`

- - ### Constructor Detail

    - #### ResolveURI

          public ResolveURI()

  - ### Method Detail

    - #### call

          public ZeroOrOne call​(XPathContext context,
                                Sequence[] arguments)
                         throws XPathException

      Evaluate the expression
      Parameters:
        `context` - the dynamic evaluation context
        `arguments` - the values of the arguments, supplied as SequenceIterators
      Returns:
        the result of the evaluation, in the form of a SequenceIterator
      Throws:
        `XPathException` - if a dynamic error occurs during the evaluation of the expression

    - #### tryToExpand

          public static java.lang.String tryToExpand​(java.lang.String systemId)

      If a system ID can't be parsed as a URL, try to expand it as a relative URI using the current directory as the base URI.
      Parameters:
        `systemId` - the supplied systemId. Null is treated as equivalent to ""
      Returns:
        the systemId itself if it is a valid URL; otherwise the result of resolving the systemId as a relative file name in the current working directory; or if the current working directory is not available (e.g. in an applet) the supplied systemId unchanged (except that null is treated as "").

    - #### makeAbsolute

          public static java.net.URI makeAbsolute​(java.lang.String relativeURI,
                                                  java.lang.String base)
                                           throws java.net.URISyntaxException

      Construct an absolute URI from a relative URI and a base URI. The method uses the resolve method of the java.net.URI class, except where the base URI uses the (non-standard) "jar:" scheme, in which case the method used is `new URL(baseURL, relativeURL)`.

      Spaces in either URI are converted to %20

      If no base URI is available, and the relative URI is not an absolute URI, then the current directory is used as a base URI.

      Parameters:
        `relativeURI` - the relative URI. Null is permitted provided that the base URI is an absolute URI
        `base` - the base URI. Null is permitted provided that relativeURI is an absolute URI
      Returns:
        the absolutized URI
      Throws:
        `java.net.URISyntaxException` - if either of the strings is not a valid URI or if the resolution fails

    - #### escapeSpaces

          public static java.lang.String escapeSpaces​(java.lang.String s)

      Replace spaces by %20
      Parameters:
        `s` - the input string
      Returns:
        the input string with each space replaced by %20

    - #### unescapeSpaces

          public static java.lang.String unescapeSpaces​(java.lang.String uri)

      Replace %20 by space
      Parameters:
        `uri` - the input uri
      Returns:
        the input URI with each %20 replaced by space