net.sf.saxon.functions
Class EscapeURI

java.lang.Object
  extended by net.sf.saxon.expr.Expression
      extended by net.sf.saxon.expr.FunctionCall
          extended by net.sf.saxon.functions.SystemFunction
              extended by 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.