DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23470>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23470 extension function fail if it's inside another extension element with xsl variable Summary: extension function fail if it's inside another extension element with xsl variable Product: XalanJ2 Version: 2.4 Platform: PC OS/Version: Windows NT/2K Status: NEW Severity: Normal Priority: Other Component: org.apache.xalan.extensions AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] I have a simple java class with one extension element and one extension function. They are working ok seperately with xsl variable. They are also working ok together if no xsl variable. However, extension element + extension function+ xsl variable, it fails with xsl variable not found. the extension java class xyz.java package xml.abc; import org.apache.xalan.extensions.*; import org.apache.xalan.templates.*; import javax.xml.transform.*; import org.w3c.dom.traversal.*; import org.apache.xpath.*; import org.apache.xpath.objects.*; public class xyz { public xyz() { super(); } public String element(XSLProcessorContext context, ElemExtensionCall elem) throws TransformerException { try { String select = elem.getAttribute("select"); org.apache.xpath.XPathContext xctxt = context.getTransformer().getXPathContext(); XPath myxpath = new XPath(select, elem, xctxt.getNamespaceContext(), XPath.SELECT); XObject xobj = myxpath.execute(xctxt, context.getContextNode(), elem); return xobj.str(); } catch( Exception e ) { throw new TransformerException(e); } } public static NodeIterator function( ExpressionContext context, NodeIterator iterator) throws TransformerException { return iterator; } } the xml file as <?xml version="1.0" ?> <root> <TB> <C1>abc</C1> </TB> <TB> <C1>xyz</C1> </TB> </root> the xsl file as <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xyz="xml.abc.xyz" extension-element-prefixes="xyz" > <xsl:template match="/"> <xsl:for-each select="/root/TB"> <xsl:variable name="myC1" select="C1"/> output of xyz:element <xyz:element select="$myC1" /> output of xyz:function <xsl:value-of select="xyz:function($myC1)" /> output of xyz:element/xyz:function <xyz:element select="xyz:function(C1)" /> output of xyz:element/xyz:function with xsl:variable <xyz:element select="xyz:function($myC1)" /> </xsl:for-each> </xsl:template> </xsl:stylesheet> the output xml result as <?xml version="1.0" encoding="UTF-8"?> output of xyz:element abc output of xyz:function abc output of xyz:element/xyz:function abc output of xyz:element/xyz:function with xsl:variable output of xyz:element xyz output of xyz:function xyz output of xyz:element/xyz:function xyz output of xyz:element/xyz:function with xsl:variable and with exception messages file:///d:/temp/xyz.xsl; Line #12; Column #98; javax.xml.transform.TransformerException: Variable not resolvable: myC1 file:///d:/temp/xyz.xsl; Line #12; Column #98; javax.xml.transform.TransformerException: Variable not resolvable: myC1
