## net.sf.saxon.functions
Class EscapeURI

    java.lang.Object
      net.sf.saxon.expr.Expression
          net.sf.saxon.expr.FunctionCall
              net.sf.saxon.functions.SystemFunction
                  net.sf.saxon.functions.EscapeURI

All Implemented Interfaces:
  Serializable, SourceLocator, Container, EvaluableItem, SequenceIterable, InstructionInfoProvider

    public class EscapeURI

extends SystemFunction

This class supports the functions encode-for-uri() and iri-to-uri()

See Also:
  Serialized Form

Field Summary
`static boolean[]` `allowedASCII`
`static int` `ENCODE_FOR_URI`
`static int` `HTML_URI`
`static int` `IRI_TO_URI`

Fields inherited from class net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`EscapeURI()`

Method Summary
`static void` `checkPercentEncoding(String uri)` Check that any percent-encoding within a URI is well-formed.
`static CharSequence` `escape(CharSequence s, String allowedPunctuation)` Escape special characters in a URI.
`Item` `evaluateItem(XPathContext c)` Evaluate the function
`static CharSequence` `iriToUri(CharSequence s)` Escape special characters in a URI.

Methods inherited from class net.sf.saxon.functions.SystemFunction
`checkArguments, computeCardinality, computeSpecialProperties, display, getDetails, getErrorCodeForTypeErrors, getItemType, main, makeSystemFunction, optimize, setDetails`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`getArguments, getDisplayName, getFunctionNameCode, getNumberOfArguments, iterateSubExpressions, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionNameCode, simplify, typeCheck`

Methods inherited from class net.sf.saxon.expr.Expression

`adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, effectiveBooleanValue, evaluateAsString, getCardinality, getColumnNumber, getContainingProcedure, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getParentExpression, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasBadParentPointer, iterate, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, setParentExpression, suppressValidation`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ENCODE_FOR_URI

    public static final int ENCODE_FOR_URI

See Also:
  Constant Field Values

### IRI_TO_URI

    public static final int IRI_TO_URI

See Also:
  Constant Field Values

### HTML_URI

    public static final int HTML_URI

See Also:
  Constant Field Values

### allowedASCII

    public static boolean[] allowedASCII

Constructor Detail

### EscapeURI

    public EscapeURI()

Method Detail

### evaluateItem

    public Item evaluateItem(XPathContext c)
                      throws XPathException

  Evaluate the function

  Specified by:
    `evaluateItem` in interface `EvaluableItem`
  Overrides:
    `evaluateItem` in class `Expression`
  Parameters:
    `c` - 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

### iriToUri

    public static CharSequence iriToUri(CharSequence s)

  Escape special characters in a URI. The characters that are %HH-encoded are all non-ASCII characters

  Parameters:
    `s` - the URI to be escaped
  Returns:
    the %HH-encoded string

### escape

    public static CharSequence escape(CharSequence 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

### 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.

  Throws:
    `XPathException`

Copyright (C) Michael H. Kay. All rights reserved.