XSLT and XPath provide numerous built-in functions, many of which we’ve seen and all of which are listed in the handy XSLT/XPath reference available in Appendix D. In addition to these built-in functions, XSLT 1.0 defines an extension mechanism that allows user-defined functions to be written in any language. By associating an appropriate XML namespace to an external function or function library, you can use the methods and functions in that external library in your stylesheet.
Vendors are free to provide language bindings for their XSLT processor to enable users to author extension functions in those languages. The Oracle XSLT processor supports the XSLT 1.0 specification for extension functions in Java.
While building stylesheets, you may run into situations where you cannot find a built-in XSLT or XPath function to do the job, and you may already know that there’s a Java class that provides the functionality you want. In these cases, you can use an existing Java class as an extension function to augment your transformation to include virtually anything you can access in Java.
To use the methods in a Java class as extension functions, you must
declare a namespace for the Java class in your stylesheet. The
namespace prefix can be any convenient name, but the namespace URI
for the Java class must be a very specific value. To use a class
package.qualified.Classname, declare a namespace with the ...