You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by Brenda Bell <b3...@theotherbell.com> on 2003/01/29 16:39:51 UTC
Questions about extensions
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