org.apache.xalan.lib
Class Extensions
java.lang.Object
org.apache.xalan.lib.Extensions
public class Extensions
extends java.lang.Object
This class contains many of the Xalan-supplied extensions.
It is accessed by specifying a namespace URI as follows:
xmlns:xalan="http://xml.apache.org/xalan"
static Node | checkEnvironment(ExpressionContext myContext) - Return a Node of basic debugging information from the
EnvironmentCheck utility about the Java environment.
|
static NodeList | difference(NodeList nl1, NodeList nl2) - Returns the difference between two node-sets.
|
static NodeList | distinct(NodeList nl) - Returns node-set containing distinct string values.
|
static XObject | evaluate(ExpressionContext myContext, String xpathExpr) - Returns the result of evaluating the argument as a string containing
an XPath expression.
|
static boolean | hasSameNodes(NodeList nl1, NodeList nl2) - Returns true if both node-sets contain the same set of nodes.
|
static NodeList | intersection(NodeList nl1, NodeList nl2) - Returns the intersection of two node-sets.
|
static NodeSet | nodeset(ExpressionContext myProcessor, Object rtf) - This method is an extension that implements as a Xalan extension
the node-set function also found in xt and saxon.
|
static NodeList | tokenize(String toTokenize) - Returns a NodeSet containing one text node for each token in the first argument.
|
static NodeList | tokenize(String toTokenize, String delims) - Returns a NodeSet containing one text node for each token in the first argument.
|
checkEnvironment
public static Node checkEnvironment(ExpressionContext myContext)
Return a Node of basic debugging information from the
EnvironmentCheck utility about the Java environment.
Simply calls the
EnvironmentCheck
utility to grab info about the Java environment and CLASSPATH,
etc., and then returns the resulting Node. Stylesheets can
then maniuplate this data or simply xsl:copy-of the Node. Note
that we first attempt to load the more advanced
org.apache.env.Which utility by reflection; only if that fails
to we still use the internal version. Which is available from
http://xml.apache.org/commons/.
We throw a WrappedRuntimeException in the unlikely case
that reading information from the environment throws us an
exception. (Is this really the best thing to do?)
myContext
- an ExpressionContext
passed in by the
extension mechanism. This must be an XPathContext.
- a Node as described above.
difference
public static NodeList difference(NodeList nl1,
NodeList nl2)
Returns the difference between two node-sets.
nl1
- NodeList for first node-setnl2
- NodeList for second node-set
- a NodeList containing the nodes in nl1 that are not in nl2
Note: The usage of this extension function in the xalan namespace
is deprecated. Please use the same function in the EXSLT sets extension
(http://exslt.org/sets).
distinct
public static NodeList distinct(NodeList nl)
Returns node-set containing distinct string values.
nl
- NodeList for node-set
- a NodeList with nodes from nl containing distinct string values.
In other words, if more than one node in nl contains the same string value,
only include the first such node found.
Note: The usage of this extension function in the xalan namespace
is deprecated. Please use the same function in the EXSLT sets extension
(http://exslt.org/sets).
evaluate
public static XObject evaluate(ExpressionContext myContext,
String xpathExpr)
throws SAXNotSupportedException
Returns the result of evaluating the argument as a string containing
an XPath expression. Used where the XPath expression is not known until
run-time. The expression is evaluated as if the run-time value of the
argument appeared in place of the evaluate function call at compile time.
myContext
- an ExpressionContext
passed in by the
extension mechanism. This must be an XPathContext.xpathExpr
- The XPath expression to be evaluated.
- the XObject resulting from evaluating the XPath
hasSameNodes
public static boolean hasSameNodes(NodeList nl1,
NodeList nl2)
Returns true if both node-sets contain the same set of nodes.
nl1
- NodeList for first node-setnl2
- NodeList for second node-set
- true if nl1 and nl2 contain exactly the same set of nodes.
intersection
public static NodeList intersection(NodeList nl1,
NodeList nl2)
Returns the intersection of two node-sets.
nl1
- NodeList for first node-setnl2
- NodeList for second node-set
- a NodeList containing the nodes in nl1 that are also in nl2
Note: The usage of this extension function in the xalan namespace
is deprecated. Please use the same function in the EXSLT sets extension
(http://exslt.org/sets).
nodeset
public static NodeSet nodeset(ExpressionContext myProcessor,
Object rtf)
This method is an extension that implements as a Xalan extension
the node-set function also found in xt and saxon.
If the argument is a Result Tree Fragment, then nodeset
returns a node-set consisting of a single root node as described in
section 11.1 of the XSLT 1.0 Recommendation. If the argument is a
node-set, nodeset
returns a node-set. If the argument
is a string, number, or boolean, then nodeset
returns
a node-set consisting of a single root node with a single text node
child that is the result of calling the XPath string() function on the
passed parameter. If the argument is anything else, then a node-set
is returned consisting of a single root node with a single text node
child that is the result of calling the java toString()
method on the passed argument.
Most of the
actual work here is done in MethodResolver
and
XRTreeFrag
.
myProcessor
- Context passed by the extension processorrtf
- Argument in the stylesheet to the nodeset extension function
NEEDSDOC ($objectName$) @return
tokenize
public static NodeList tokenize(String toTokenize)
Returns a NodeSet containing one text node for each token in the first argument.
Delimiters are whitespace. That is, the delimiters that are used are tab ( ),
linefeed (
), return (
), and space ( ).
Tokens are determined by a call to
StringTokenizer
.
If the first argument is an empty string or contains only delimiters, the result
will be an empty NodeSet.
Contributed to XalanJ1 by
Benoit Cerrina.
toTokenize
- The string to be split into text tokens.
- a NodeSet as described above.
tokenize
public static NodeList tokenize(String toTokenize,
String delims)
Returns a NodeSet containing one text node for each token in the first argument.
Delimiters are specified in the second argument.
Tokens are determined by a call to
StringTokenizer
.
If the first argument is an empty string or contains only delimiters, the result
will be an empty NodeSet.
Contributed to XalanJ1 by
Benoit Cerrina.
toTokenize
- The string to be split into text tokens.delims
- The delimiters to use.
- a NodeSet as described above.
Copyright B) 2006 Apache XML Project. All Rights Reserved.