Package net.sf.saxon.functions
Class EncodeForUri
java.lang.Object
net.sf.saxon.functions.AbstractFunction
net.sf.saxon.functions.SystemFunction
net.sf.saxon.functions.ScalarSystemFunction
net.sf.saxon.functions.EncodeForUri
- All Implemented Interfaces:
Callable
,FunctionItem
,GroundedValue
,Item
,Sequence
This class supports the function fn:encode-for-uri()
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic void
Check that any percent-encoding within a URI is well-formed.static StringValue
escape
(UnicodeString s, String allowedPunctuation) Escape special characters in a URI.static void
escapeChar
(int cp, UnicodeBuilder sb) Escape a single character in %HH representation, or a pair of two chars representing a surrogate pairevaluate
(Item arg, XPathContext context) Abstract method that must be supplied in subclasses to perform the evaluationMethod that may be supplied in subclasses, to indicate the result that is returned when an empty sequence is supplied as the argument value.Methods inherited from class net.sf.saxon.functions.ScalarSystemFunction
call, makeFunctionCall
Methods inherited from class net.sf.saxon.functions.SystemFunction
dependsOnContextItem, dynamicCall, equals, export, exportAdditionalArguments, exportAttributes, fixArguments, getArity, getCardinality, getContextNode, getDescription, getDetails, getElaborator, getErrorCodeForTypeErrors, getFunctionItemType, getFunctionName, getIntegerBounds, getNetCost, getOperandRoles, getRequiredType, getResultItemType, getResultItemType, getRetainedStaticContext, getSpecialProperties, getStaticBaseUriString, getStreamerName, getUniStringArg, hashCode, importAttributes, isSequenceVariadic, isTrustedResultType, makeCall, makeFunction, makeFunction40, makeOptimizedFunctionCall, resultIfEmpty, setArity, setDetails, setRetainedStaticContext, supplyTypeInformation, toShortString, toString, typeCheckCaller
Methods inherited from class net.sf.saxon.functions.AbstractFunction
atomize, deepEqual40, deepEquals, effectiveBooleanValue, getAnnotations, getUnicodeStringValue, isArray, isMap, makeNewContext, simplify, typeCheck
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.sf.saxon.om.FunctionItem
getGenre
Methods inherited from interface net.sf.saxon.om.GroundedValue
asIterable, concatenate, containsNode, materialize
Methods inherited from interface net.sf.saxon.om.Item
getLength, getStringValue, head, isStreamed, itemAt, iterate, reduce, subsequence
Methods inherited from interface net.sf.saxon.om.Sequence
makeRepeatable
-
Constructor Details
-
EncodeForUri
public EncodeForUri()
-
-
Method Details
-
evaluate
Description copied from class:ScalarSystemFunction
Abstract method that must be supplied in subclasses to perform the evaluation- Specified by:
evaluate
in classScalarSystemFunction
- Parameters:
arg
- the supplied argumentcontext
- the dynamic context- Returns:
- the result of the evaluation
- Throws:
XPathException
- if a dynamic error occurs
-
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 classScalarSystemFunction
- Returns:
- the result of evaluation when the supplied argument is an empty sequence
-
escape
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 escapedallowedPunctuation
- ASCII characters other than letters and digits that should NOT be %HH-encoded- Returns:
- the %HH-encoded string
-
escapeChar
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
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
-