Questions about extensions 2003-01-29 - By Brenda Bell
First, some context: I know xml and xslt, I know Java and I know enough about JavaScript to hurt myself :)
I have to port an MSXML-based XSLT transformation to Xalan. The transformation itself is pretty simple:
My xslt contains an msxsl:script element (equivalent of xalan:script). Inside the script element, I've defined VBScript functions that use scripting functionality wherever possible and invoke methods on COM objects for everything else. For instance, the script might take a string as an argument, split it into tokens, and pass the third token to a COM object that manipulates the string further beyond what is possible in VBScript.
I've read the docs on extensions and looked at all the examples which make perfect sense if I need to use script-only or Java-only extensions. I can't quite seem to grasp what I need to do if I want to use both... better yet, if it's even possible to use both.
What I have so far is this (stylesheet element, namespaces, and output element not shown):
<xalan:component prefix="myns" functions="myfunc"> <xalan:script lang="javascript"> function myfunc( str ) return str; end function </xalan:script> </xalan:component> <xsl:template match="/myelt"> <xsl:element name="mynewelt"> <xsl:value-of select="myns:myfunc(string(.)) disable-output-escaping="yes"/> </xsl:element> </xsl:template>
Obviously, I want to do more inside myfunc than return the input argument.
First question is: can a component element contain more than one script element (one for javascript and one for javaclass). If that's true, I could possibly use javascript for the functionality that can be implemented solely in script and use java for everything else; however, my preference is to keep the Xalan and MSXML code paths as similar as possible for ease of maintenance in the future.
Second question (related to the first one): Can someone point me to the DTD URL for the xalan namespace? Obviously, if I could find the darn thing, I could have probably answered the first question for myself.
Third question: How would I go about setting things up so I can invoke a Java class method from inside a script function? I assume I need to worry about at least the classpath... is it as simple as adding a src attribute to my script element? Or is src only valid for javaclass extentions?
I sincerely appreciate any assistance in getting my head around this particular aspect of Xalan.
Brenda
|
|