net.sf.saxon.functions

Class EscapeURI

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

public class EscapeURI
extends SystemFunction

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

Field Summary

static int
ENCODE_FOR_URI
static int
HTML_URI
static int
IRI_TO_URI
static boolean[]
allowedASCII

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, PROCESS_METHOD, locationId, staticProperties

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

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, checkArguments, equals, explain, getArguments, getDisplayName, getFunctionName, getNumberOfArguments, hashCode, iterateSubExpressions, optimize, preEvaluate, promote, replaceSubExpression, setArguments, setFunctionName, simplify, simplifyArguments, toString, typeCheck

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

addToPathMap, adoptChildExpression, checkPermittedContents, computeCardinality, computeDependencies, computeSpecialProperties, computeStaticProperties, copy, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, explain, explain, findParentOf, getCardinality, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getItemType, getLineNumber, getLocationId, getLocationProvider, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, iterate, iterateEvents, iterateSubExpressions, markTailFunctionCalls, optimize, process, promote, replaceSubExpression, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, simplify, staticTypeCheck, suppressValidation, toString, typeCheck, typeError

Field Details

ENCODE_FOR_URI

public static final int ENCODE_FOR_URI
Field Value:
1

HTML_URI

public static final int HTML_URI
Field Value:
3

IRI_TO_URI

public static final int IRI_TO_URI
Field Value:
2

allowedASCII

public static boolean[] allowedASCII

Method Details

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.

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

evaluateItem

public Item evaluateItem(XPathContext c)
            throws XPathException
Evaluate the function
Specified by:
evaluateItem in interface EvaluableItem
Overrides:
evaluateItem in interface 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