Class ResolveURI

All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, CallableExpression, InstructionInfo, Locator

public class ResolveURI extends SystemFunction implements CallableExpression
This class supports the resolve-uri() functions in XPath 2.0
See Also:
  • Field Details

    • expressionBaseURI

      String expressionBaseURI
  • Constructor Details

    • ResolveURI

      public ResolveURI()
  • Method Details

    • checkArguments

      public void checkArguments(ExpressionVisitor visitor) throws XPathException
      Description copied from class: SystemFunction
      Method called during static type checking
      Overrides:
      checkArguments in class SystemFunction
      Parameters:
      visitor - the expression visitor
      Throws:
      XPathException - if the arguments are incorrect
    • getStaticBaseURI

      public String getStaticBaseURI()
      Get the static base URI of the expression
      Returns:
      the base URI from the static context
    • copy

      public Expression copy()
      Copy an expression. This makes a deep copy.
      Overrides:
      copy in class SystemFunction
      Returns:
      the copy of the original expression
    • equals

      public boolean equals(Object o)
      Determine whether two expressions are equivalent
      Overrides:
      equals in class SystemFunction
    • evaluateItem

      public Item evaluateItem(XPathContext context) throws XPathException
      Evaluate the function at run-time
      Overrides:
      evaluateItem in class Expression
      Parameters:
      context - The context in which the expression is to be evaluated
      Returns:
      the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
      Throws:
      XPathException - if any dynamic error occurs evaluating the expression
    • call

      public SequenceIterator call(SequenceIterator[] arguments, XPathContext context) throws XPathException
      Evaluate the expression
      Specified by:
      call in interface CallableExpression
      Parameters:
      arguments - the values of the arguments, supplied as SequenceIterators
      context - the dynamic evaluation context
      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 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