net.sf.saxon.functions

## Class EscapeURI

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

- All Implemented Interfaces:
    Serializable, SourceLocator, LocationProvider, SaxonLocator, Callable, InstructionInfo, Locator

      public class EscapeURI
      extends SystemFunctionCall
      implements Callable

  This class supports the functions encode-for-uri() and iri-to-uri()
  See Also:
    Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `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.SystemFunctionCall

      `operation`

    - ### Fields inherited from class net.sf.saxon.expr.FunctionCall

      `argument`

    - ### Fields inherited from class net.sf.saxon.expr.Expression

      `EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, INHERITED_CONTEXT, INSPECTION_CONTEXT, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, NAVIGATION_CONTEXT, NODE_VALUE_CONTEXT, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, W3C_CONSUMING, W3C_FREE_RANGING, W3C_GROUP_CONSUMING, W3C_MOTIONLESS, WATCH_METHOD`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `EscapeURI()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Sequence` | `call(XPathContext context, Sequence[] arguments)` Evaluate the expression
    `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.
    `StringValue` | `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.SystemFunctionCall

      `addContextDocumentArgument, addDocToPathMap, bindStaticContext, checkArguments, computeCardinality, computeSpecialProperties, copy, equalOrNull, equals, getContextNode, getConvertingCallable, getDefaultArgumentNode, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getImplementationMethod, getItemType, getOperation, getRequiredType, iterateSubExpressionInfo, makeSystemFunction, optimize, setDetails, useContextItemAsDefault`

    - ### Methods inherited from class net.sf.saxon.expr.FunctionCall

      `addExternalFunctionCallToPathMap, checkArgumentCount, explain, getArguments, getDisplayName, getExpressionName, 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, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getExpressionCompiler, getHostLanguage, getIntegerBounds, getIntrinsicDependencies, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getStreamability, getStreamingAdjunct, getSystemId, getSystemId, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, iterateEvents, markTailFunctionCalls, process, resetLocalStaticProperties, setContainer, setEvaluationMethod, setFiltered, setFlattened, setLocationId, staticTypeCheck, suppressValidation, toPattern, toStreamingPattern, 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 StringValue evaluateItem(XPathContext c)
                                   throws XPathException

      Evaluate the function
      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

    - #### call

          public Sequence call(XPathContext context,
                      Sequence[] arguments)
                        throws XPathException

      Evaluate the expression
      Specified by:
        `call` in interface `Callable`
      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

    - #### 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.
      Parameters:
        `uri` - the string to be checked for validity
      Throws:
        `XPathException` - if the string is not validly percent-encoded

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.