Class EncodeForUri

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

public class EncodeForUri extends ScalarSystemFunction
This class supports the function fn:encode-for-uri()
  • Constructor Details

    • EncodeForUri

      public EncodeForUri()
  • Method Details

    • evaluate

      public AtomicValue evaluate(Item arg, XPathContext context) throws XPathException
      Description copied from class: ScalarSystemFunction
      Abstract method that must be supplied in subclasses to perform the evaluation
      Specified by:
      evaluate in class ScalarSystemFunction
      Parameters:
      arg - the supplied argument
      context - the dynamic context
      Returns:
      the result of the evaluation
      Throws:
      XPathException - if a dynamic error occurs
    • resultWhenEmpty

      public Sequence resultWhenEmpty()
      Description copied from class: ScalarSystemFunction
      Method that may be supplied in subclasses, to indicate the result that is returned when an empty sequence is supplied as the argument value. The default is to return the empty sequence
      Overrides:
      resultWhenEmpty in class ScalarSystemFunction
      Returns:
      the result of evaluation when the supplied argument is an empty sequence
    • escape

      public static StringValue escape(UnicodeString s, String allowedPunctuation)
      Escape special characters in a URI. The characters that are %HH-encoded are all non-ASCII characters, plus all ASCII characters except (a) letter A-Z and a-z, (b) digits 0-9, and (c) characters listed in the allowedPunctuation argument
      Parameters:
      s - the URI to be escaped
      allowedPunctuation - ASCII characters other than letters and digits that should NOT be %HH-encoded
      Returns:
      the %HH-encoded string
    • escapeChar

      public static void escapeChar(int cp, UnicodeBuilder sb)
      Escape a single character in %HH representation, or a pair of two chars representing a surrogate pair
      Parameters:
      cp - the codepoint to be escaped,
      sb - the buffer to contain the escaped result
    • checkPercentEncoding

      public static void checkPercentEncoding(String uri) throws XPathException
      Check that any percent-encoding within a URI is well-formed. The method assumes that a percent sign followed by two hex digits represents an octet of the UTF-8 representation of a character; any other percent sign is assumed to represent itself.
      Parameters:
      uri - the string to be checked for validity
      Throws:
      XPathException - if the string is not validly percent-encoded