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
,Function
,GroundedValue
,Item
,Sequence
public class EncodeForUri extends ScalarSystemFunction
This class supports the function fn:encode-for-uri()
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.functions.ScalarSystemFunction
ZERO_LENGTH_STRING
-
-
Constructor Summary
Constructors Constructor Description EncodeForUri()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.static void
escapeChar(char c, char c2, FastStringBuffer sb)
Escape a single character in %HH representation, or a pair of two chars representing a surrogate pairAtomicValue
evaluate(Item arg, XPathContext context)
Abstract method that must be supplied in subclasses to perform the evaluationZeroOrOne
resultWhenEmpty()
Method 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, getCompilerName, getContextNode, getDescription, getDetails, getErrorCodeForTypeErrors, getFunctionItemType, getFunctionName, getIntegerBounds, getNetCost, getOperandRoles, getRequiredType, getResultItemType, getResultItemType, getRetainedStaticContext, getSpecialProperties, getStaticBaseUriString, getStreamerName, importAttributes, isTrustedResultType, makeCall, makeFunction, makeOptimizedFunctionCall, resultIfEmpty, setArity, setDetails, setRetainedStaticContext, supplyTypeInformation, toShortString, toString, typeCheckCaller
-
Methods inherited from class net.sf.saxon.functions.AbstractFunction
atomize, deepEquals, effectiveBooleanValue, getAnnotations, getStringValue, getStringValueCS, isArray, isMap, makeNewContext, simplify, typeCheck
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.saxon.om.GroundedValue
asIterable, concatenate, containsNode, materialize
-
Methods inherited from interface net.sf.saxon.om.Item
getLength, head, isStreamed, itemAt, iterate, reduce, subsequence
-
Methods inherited from interface net.sf.saxon.om.Sequence
makeRepeatable
-
-
-
-
Method Detail
-
evaluate
public AtomicValue evaluate(Item arg, XPathContext context) throws XPathException
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
public ZeroOrOne 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
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 escapedallowedPunctuation
- ASCII characters other than letters and digits that should NOT be %HH-encoded- Returns:
- the %HH-encoded string
-
escapeChar
public static void escapeChar(char c, char c2, FastStringBuffer sb)
Escape a single character in %HH representation, or a pair of two chars representing a surrogate pair- Parameters:
c
- the character to be escaped, or the first character of a surrogate pairc2
- the second character of a surrogate pairsb
- the buffer to contain the escaped result
-
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
-
-