You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xerces.apache.org by CLAVIER Remi FTRD/RTA/LAN <re...@rd.francetelecom.com> on 2003/01/09 08:38:39 UTC

[xalan-ext] Classe of parameter for java extensions

This mail was posted with a bad titlle...
Apologize...
------------------------------------------------------------------------
----
Have all people in the list an happy new year... and sorry to use HTML
in the mail
 
I've a problem using java extension in xalan.
an extension java call give me 2 different objects, depending of the
call in the XSL transform.
 
considering the java extension call 
public String initTables(org.apache.xalan.extensions.XSLProcessorContext
context,
                 org.w3c.dom.Element elem1)
{org.w3c.dom.Element elemC=( org.w3c.dom.Element)
context.getContextNode();
...
}
 
and the transformation given in the XSL listing above.
It's work well and the object in elemC is an 
org.apache.xerces.dom.DefferedElementNSimpl object 
(as expected)
 
but if I change the  line 
<xsl:apply-templates select="/doc" mode="test" />
by the line 
<xsl:apply-templates select="xalan:nodeset($mydoc)/doc" mode="test" />
in comment in the listing ( what I need to do) , the returned object is
an
org.apache.dtm.ref.DTMNodeProxy  object 
and the rest of the function don't work.
 
It's a cast problem or a bug from xalan?
how to cast it properly to have a Element object ?
 
 
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:lxslt="http://xml.apache.org/xslt"
                xmlns:exc="MyExcWriter"
     xmlns:xalan="http://xml.apache.org/xalan"
                 extension-element-prefixes="exc xalan"
                version="1.0">
<xsl:output method="xml" encoding ="ISO-8859-1" />
 
  <lxslt:component prefix="exc"
                   elements="  initTables"
                   functions="    ">
    <lxslt:script lang="javaclass" src="MyExcWriter"/>
  </lxslt:component>
 
<xsl:template match="/doc">
<test>
<xsl:variable name="mydoc">
<xsl:copy-of select="." />
</xsl:variable>
<xsl:copy-of select="$mydoc" />
<!--<xsl:apply-templates select="xalan:nodeset($mydoc)/doc" mode="test"
/>-->
<xsl:apply-templates select="/doc" mode="test" />
</test>
</xsl:template>

<xsl:template match="/doc" mode="test">
<exc:initTables name="index" />
</xsl:template>
 
</xsl:stylesheet>





Thank's for answer...
Mr Remi Clavier
Expert Methodes et Outils
France Telecom R&D/RTA/D2M
2, Avenue Pierre Marzin
22307 Lannion
tel : +33 2 96 05 22 20
fax: +33 2 96 05 22 20
e_mail : remi.clavier@francetelecom.com


---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-user-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-user-help@xml.apache.org