net.sf.saxon.functions

Class Extensions

public class Extensions extends Object

This class implements functions that are supplied as standard with SAXON, but which are not defined in the XSLT or XPath specifications.

To invoke these functions, use a function call of the form prefix:name() where name is the method name, and prefix maps to a URI such as http://saxon.sf.net/net.sf.saxon.functions.Extensions (only the part of the URI after the last slash is important).

Method Summary
static SequenceIteratorafter(XPathContext context, SequenceIterator ns1, SequenceIterator ns2)
Find all the nodes in ns1 that are after the first node in ns2.
static byte[]base64BinaryToOctets(Base64BinaryValue in)
Convert a base64Binary value to a sequence of integers representing the octets contained in the value
static Stringbase64BinaryToString(XPathContext context, Base64BinaryValue in, String encoding)
Convert a base64Binary value to a String, assuming a particular encoding
static TemplatescompileStylesheet(XPathContext context, DocumentInfo doc)
Compile a document containing a stylesheet module into a stylesheet that can be used to perform transformations
static SecondsDurationValuedayTimeDurationFromSeconds(BigDecimal arg)
Get a dayTimeDuration value corresponding to a given number of seconds
static BigDecimaldecimalDivide(BigDecimal arg1, BigDecimal arg2, int scale)
Perform decimal division to a user-specified precision
static booleandeepEqual(XPathContext context, SequenceIterator arg1, SequenceIterator arg2, String collation, String flags)
Perform a parameterized deep-equals() test
static DocumentInfodiscardDocument(XPathContext context, DocumentInfo doc)
Remove a document from the document pool.
static ConfigurationgetConfiguration(XPathContext c)
Return the Configuration object
static XPathContextgetContext(XPathContext c)
Return the XPathContext object
static ControllergetController(XPathContext c)
Return the Controller object
static StringgetPseudoAttribute(XPathContext c, String name)
Get a pseudo-attribute of a processing instruction.
static booleanhasSameNodes(SequenceIterator p1, SequenceIterator p2)
Determine whether two node-sets contain the same nodes
static byte[]hexBinaryToOctets(HexBinaryValue in)
Convert a hexBinary value to a sequence of integers representing the octets contained in the value
static StringhexBinaryToString(XPathContext context, HexBinaryValue in, String encoding)
Convert a hexBinary value to a String, assuming a particular encoding
static Valuehighest(SequenceIterator nsv)
Get the node with maximum numeric value of the string-value of each of a set of nodes
static SequenceIteratorhighest(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Get the maximum numeric value of a stored expression over a set of nodes
static SequenceIteratorleading(XPathContext context, SequenceIterator in, Evaluate.PreparedExpression pexp)
Get the items that satisfy the given expression, up to and excluding the first one (in sequence order) that doesn't
static intlineNumber(XPathContext c)
Return the line number of the context node.
static intlineNumber(NodeInfo node)
Return the line number of the specified node.
static Valuelowest(SequenceIterator nsv)
Get the node with minimum numeric value of the string-value of each of a set of nodes
static SequenceIteratorlowest(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Get the node with minimum numeric value of a stored expression over a set of nodes
static doublemax(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Get the maximum numeric value of a stored expression over a set of nodes
static doublemin(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Get the minimum numeric value of a stored expression over a set of nodes
static NodeInfonamespaceNode(XPathContext context, String prefix, String uri)
Create a parentless namespace node.
static Base64BinaryValueoctetsToBase64Binary(byte[] in)
Convert a sequence of integers in the range 0-255, representing a sequence of octets, to a base64Binary value
static HexBinaryValueoctetsToHexBinary(byte[] in)
Convert a sequence of integers in the range 0-255, representing a sequence of octets, to a hexBinary value
static Stringpath(XPathContext c)
Return an XPath expression that identifies the current node
static voidpauseTracing(XPathContext c)
Switch tracing off.
static voidresumeTracing(XPathContext c)
Resume tracing.
static Base64BinaryValuestringToBase64Binary(String in, String encoding)
Convert a string to a base64Binary value in a given encoding
static HexBinaryValuestringToHexBinary(String in, String encoding)
Convert a string to a hexBinary value in a given encoding
static ListstringToUtf8(String in)
Get the UTF-8 encoding of a string
static doublesum(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Total a stored expression over a set of nodes
static StringsystemId(XPathContext c)
Return the system identifier of the context node
static SequenceIteratortokenize(String s)
Return a node-set by tokenizing a supplied string.
static SequenceIteratortokenize(String s, String delim)
Return a sequence by tokenizing a supplied string.
static DocumentInfotransform(XPathContext context, Templates templates, NodeInfo source)
Run a transformation to convert an input tree to an output document
static StringtypeAnnotation(XPathContext context, NodeInfo node)
Display the value of the type annotation of a node
static booleanvalidCharacter(XPathContext c, int in)
Test whether a given integer is the codepoint of a valid XML character
static MonthDurationValueyearMonthDurationFromMonths(int arg)
Get a yearMonthDuration value corresponding to a given number of months

Method Detail

after

public static SequenceIterator after(XPathContext context, SequenceIterator ns1, SequenceIterator ns2)
Find all the nodes in ns1 that are after the first node in ns2. Return ns1 if ns2 is empty,

base64BinaryToOctets

public static byte[] base64BinaryToOctets(Base64BinaryValue in)
Convert a base64Binary value to a sequence of integers representing the octets contained in the value

base64BinaryToString

public static String base64BinaryToString(XPathContext context, Base64BinaryValue in, String encoding)
Convert a base64Binary value to a String, assuming a particular encoding

compileStylesheet

public static Templates compileStylesheet(XPathContext context, DocumentInfo doc)
Compile a document containing a stylesheet module into a stylesheet that can be used to perform transformations

dayTimeDurationFromSeconds

public static SecondsDurationValue dayTimeDurationFromSeconds(BigDecimal arg)
Get a dayTimeDuration value corresponding to a given number of seconds

decimalDivide

public static BigDecimal decimalDivide(BigDecimal arg1, BigDecimal arg2, int scale)
Perform decimal division to a user-specified precision

deepEqual

public static boolean deepEqual(XPathContext context, SequenceIterator arg1, SequenceIterator arg2, String collation, String flags)
Perform a parameterized deep-equals() test

Parameters: context The evaluation context arg1 The first sequence to be compared arg2 The second sequence to be compared collation The collation to be used (null if the default collation is to be used) flags A string whose characters select options that cause the comparison to vary from the standard fn:deep-equals() function. The flags are:

Returns: true if the sequences are deep equal, otherwise false

discardDocument

public static DocumentInfo discardDocument(XPathContext context, DocumentInfo doc)
Remove a document from the document pool. The effect is that the document becomes eligible for garbage collection, allowing memory to be released when processing of the document has finished. The downside is that a subsequent call on document() with the same URI causes the document to be reloaded and reparsed, and the new nodes will have different node identity from the old.

Parameters: context the evaluation context (supplied implicitly by the call mechanism) doc the document to be released from the document pool

Returns: the document that was released. This allows a call such as select="saxon:discard-document(document('a.xml'))"

getConfiguration

public static Configuration getConfiguration(XPathContext c)
Return the Configuration object

getContext

public static XPathContext getContext(XPathContext c)
Return the XPathContext object

getController

public static Controller getController(XPathContext c)
Return the Controller object

getPseudoAttribute

public static String getPseudoAttribute(XPathContext c, String name)
Get a pseudo-attribute of a processing instruction. Return an empty string if the pseudo-attribute is not present. Character references and built-in entity references are expanded

hasSameNodes

public static boolean hasSameNodes(SequenceIterator p1, SequenceIterator p2)
Determine whether two node-sets contain the same nodes

Parameters: p1 The first node-set. The iterator must be correctly ordered. p2 The second node-set. The iterator must be correctly ordered.

Returns: true if p1 and p2 contain the same set of nodes

hexBinaryToOctets

public static byte[] hexBinaryToOctets(HexBinaryValue in)
Convert a hexBinary value to a sequence of integers representing the octets contained in the value

hexBinaryToString

public static String hexBinaryToString(XPathContext context, HexBinaryValue in, String encoding)
Convert a hexBinary value to a String, assuming a particular encoding

highest

public static Value highest(SequenceIterator nsv)
Get the node with maximum numeric value of the string-value of each of a set of nodes

highest

public static SequenceIterator highest(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Get the maximum numeric value of a stored expression over a set of nodes

leading

public static SequenceIterator leading(XPathContext context, SequenceIterator in, Evaluate.PreparedExpression pexp)
Get the items that satisfy the given expression, up to and excluding the first one (in sequence order) that doesn't

lineNumber

public static int lineNumber(XPathContext c)
Return the line number of the context node.

lineNumber

public static int lineNumber(NodeInfo node)
Return the line number of the specified node.

lowest

public static Value lowest(SequenceIterator nsv)
Get the node with minimum numeric value of the string-value of each of a set of nodes

lowest

public static SequenceIterator lowest(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Get the node with minimum numeric value of a stored expression over a set of nodes

max

public static double max(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Get the maximum numeric value of a stored expression over a set of nodes

min

public static double min(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Get the minimum numeric value of a stored expression over a set of nodes

namespaceNode

public static NodeInfo namespaceNode(XPathContext context, String prefix, String uri)
Create a parentless namespace node. This function is useful in XQuery when namespaces need to be created dynamically. The effect is the same as that of the xsl:namespace instruction in XSLT.

octetsToBase64Binary

public static Base64BinaryValue octetsToBase64Binary(byte[] in)
Convert a sequence of integers in the range 0-255, representing a sequence of octets, to a base64Binary value

octetsToHexBinary

public static HexBinaryValue octetsToHexBinary(byte[] in)
Convert a sequence of integers in the range 0-255, representing a sequence of octets, to a hexBinary value

path

public static String path(XPathContext c)
Return an XPath expression that identifies the current node

pauseTracing

public static void pauseTracing(XPathContext c)
Switch tracing off. Only works if tracing is enabled.

resumeTracing

public static void resumeTracing(XPathContext c)
Resume tracing. Only works if tracing was originally enabled but is currently paused.

stringToBase64Binary

public static Base64BinaryValue stringToBase64Binary(String in, String encoding)
Convert a string to a base64Binary value in a given encoding

stringToHexBinary

public static HexBinaryValue stringToHexBinary(String in, String encoding)
Convert a string to a hexBinary value in a given encoding

stringToUtf8

public static List stringToUtf8(String in)
Get the UTF-8 encoding of a string

Parameters: in the supplied string

Returns: a sequence of integers, each in the range 0-255, representing the octets of the UTF-8 encoding of the given string

sum

public static double sum(XPathContext context, SequenceIterator nsv, Evaluate.PreparedExpression pexpression)
Total a stored expression over a set of nodes

systemId

public static String systemId(XPathContext c)
Return the system identifier of the context node

tokenize

public static SequenceIterator tokenize(String s)
Return a node-set by tokenizing a supplied string. Tokens are delimited by any sequence of whitespace characters.

tokenize

public static SequenceIterator tokenize(String s, String delim)
Return a sequence by tokenizing a supplied string. The argument delim is a String, any character in this string is considered to be a delimiter character, and any sequence of delimiter characters acts as a separator between tokens.

transform

public static DocumentInfo transform(XPathContext context, Templates templates, NodeInfo source)
Run a transformation to convert an input tree to an output document

Parameters: context The dynamic context templates The compiled stylesheet source The initial context node representing the document to be transformed

typeAnnotation

public static String typeAnnotation(XPathContext context, NodeInfo node)
Display the value of the type annotation of a node

validCharacter

public static boolean validCharacter(XPathContext c, int in)
Test whether a given integer is the codepoint of a valid XML character

yearMonthDurationFromMonths

public static MonthDurationValue yearMonthDurationFromMonths(int arg)
Get a yearMonthDuration value corresponding to a given number of months