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