## 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:
  java.io.Serializable, javax.xml.transform.SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, org.xml.sax.Locator

    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.functions.SystemFunction
`operation`

Fields inherited from class net.sf.saxon.expr.FunctionCall
`argument`

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

Constructor Summary
`EscapeURI()`

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

Methods inherited from class net.sf.saxon.functions.SystemFunction
`addContextDocumentArgument, addDocToPathMap, checkArguments, computeCardinality, computeSpecialProperties, copy, getDetails, getErrorCodeForTypeErrors, getItemType, getRequiredType, makeSystemFunction, optimize, setDetails, useContextItemAsDefault`

Methods inherited from class net.sf.saxon.expr.FunctionCall
`addExternalFunctionCallToPathMap, checkArgumentCount, equals, explain, getArguments, getDisplayName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck`

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

`addToPathMap, adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, findParentOf, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, isUpdatingExpression, iterate, iterateEvents, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, typeError`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, 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 java.lang.CharSequence iriToUri(java.lang.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 java.lang.CharSequence escape(java.lang.CharSequence s,
                                                java.lang.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(java.lang.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

Copyright (c) Saxonica Limited. All rights reserved.