The Oracle XSLT Extensions
For Oracle XSLT extensions, you need to understand that once you define an XSLT extension in a certain programming language, the XSL file can be used only with XSL processors that can invoke such an extension. For example, if you define an XSLT extension function in Java, this function can be invoked only by an XSL processor that can invoke Java calls. Currently, no extensions exist for Oracle XSL processors in C/C++.In addition, you should use XSLT extensions only if the built-in XSL functions can’t help you solve the problem. For example, instead of creating an arc tangent function, you can use the built-in cosine and sine functions to achieve this functionality.Finally, if you are thinking of using a specific XSL processor, you need to have the namespace of the extension class start with the proper URL. For example, when using the Oracle XSLT extensions, the namespace to prefix is http://www.oracle.com/XSL/Transform/java.
Useful Built-in Java Oracle XSLT Extensions
Defined for use by the Java Oracle XSLT processor, two such extensions are <ora:output> element and <ora:node-set>, where xmlns:ora=“http://www.oracle.com/XSL/Transform/java”. When <ora:output> is used as a top-level element, it is similar to the <xsl:output> extension function, except that <ora:output> has an additional attribute name that is used as an identifier. When <ora:output> is used in an XSL template, again, it is similar to the <xsl:output> extension function, except that it has two additional attributes, use and href, which specify the name of the top-level <ora:output> to be used and give the output URL for the subtree of the XSLT result, respectively.<xsl:output> is very useful when you need to create multiple outputs from one XSLT transformation, such as the product specifications. Using <xsl:output>, you can create the index pages with links to the set of subpages for the topic details.The second built-in extension function, <ora:node-set>, converts a result tree fragment into a node-set, which makes it a very useful convenience function. This function is useful if you need to refer the existing text or intermediate text result in XSL for further XSL transformation.