Class ResolveURI

All Implemented Interfaces:
Callable, FunctionItem, GroundedValue, Item, Sequence

public class ResolveURI extends SystemFunction
This class supports the resolve-uri() function in XPath 2.0
  • Constructor Details

    • ResolveURI

      public ResolveURI()
  • Method Details

    • call

      public Sequence 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
    • absoluteOrRelativeURI

      public static URI absoluteOrRelativeURI(String href) throws URISyntaxException
      Throws:
      URISyntaxException
    • tryToExpand

      public static String tryToExpand(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 URI makeAbsolute(String relativeURI, String base) throws 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:
      URISyntaxException - if either of the strings is not a valid URI or if the resolution fails
    • escapeSpaces

      public static String escapeSpaces(String s)
      Replace spaces by %20
      Parameters:
      s - the input string
      Returns:
      the input string with each space replaced by %20
    • unescapeSpaces

      public static String unescapeSpaces(String uri)
      Replace %20 by space
      Parameters:
      uri - the input uri
      Returns:
      the input URI with each %20 replaced by space