Subjects
Home
Xalan extension functions
Fomatting question serializing DOM with pretty print
xalan with pull parser
Cannot find the declaration
Apache Xalan drop support to run on JRE 1 1 x
Why does Doctype change processing of a document
Node set to XML string via Java extensions in Xalan J: possible?
Templates/Transformers + thread safety???
Problem evaluating xpath with muliple prefix with different namespace
remove an arbitrary attribute from xsl output
Xalan3 XSLT 2 0 XPath 2 0 support?
Problem using compiled translets with Xalan !!
Xalan and jstl 1 1 problem with transform tag
NullPointer in DOM2DTM getLocalName
URIResolvers base parameter with xsltc and cascaded imports
Performance problem for Xalan J on intel dual core
Standard libraries in JAXP?
Serializing a DOM tree to XML file, customize entities replacement
Library Conflict Involving BCEL Library
A question on how users are using <xsl:message >
Kevin Cormier as a new Apache Xalan J committer
Struggling to iterate over tokenized string
Xalan count() trouble
Problem with recursive xpath
Error when switching to java 1 5
document( ' ')
Problem with Xalan2 7 0 transformation
cr/lf options
entity encoded XML
can xalan transform 2 xml using one xslt?
Xalan J JIRA defect review Monday October 16, 2006 from 2:00 to 3:30 pm ED
xsl transform with cdata section elements
xslt parameters not expanded
Weird behavior of XPath evaluate()
How to avoid <xsl:message > instruction prints stylesheet file informations ?
Cannot find SimpleTransform subdirectory after installing Xalan J
recover from document not found exceptions
jdk1 5 and Xalan jar differences?
Performance Issue
Error/Bug adding floating point numbers
XPathAPI: eval exp using nodes with default namespace
modifying xalan to output invalid XML
NullPointerException
mege two separate xml nodes into one
Is this a XALAN document identification bug?
is StylesheetRoot really java io Serializable ?
transform() fails for DOMSource but succeeds for StreamSource
Thoughts on Transformer parameter passing
HELP, Xalan and jstl 1 1 problem with transformer
Problem with XPath namespace axis?
string utils:replace deleting search string if replacement string is an HTML
help with enumeration values pls
xalan 2 5 1 vs 2 7 performance question
How to insert/update in XML document
HTML Serialization and Handling of Ampersands in HREF Attributes
XHTML link tag stripping
SystemId Unknown; Line #24; Column #49; java lang NullPointerException
xpath text() help
Apostrophe problem with xalan 2 7 0
How to set variables in XML document?
Links
Home
Oracle database error code ...
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Xalan extension functions

Xalan extension functions

2007-05-02       - By Fuller, Alex
Reply:     1     2     3     4     5     6     7     8     9     10     >>  

Hi John,
  I believe your problem that you haven't created an instance of the
class in which you're asking Xalan to execute a method.  Since your
extension is written in Java, you should get rid of the
<xalan:component> syntax and use the abbreviated syntax
<http://xml.apache.org/xalan-j/extensions.html#java-namespace> .
However, the lack of a package name may hurt you; I've never tried that.
If all you want to do is invoke the constructor, use syntax like:

<xsl:variable name="MyTest" select="mytest:new()"/>

The error message is saying that Xalan thinks you're trying to call an
instance method on your object.  To do that you have to include the
instance of the object in the method call.  So, if your class had a
method "public void launch(String destination)"

<xsl:value-of select="mytest:launch($MyTest, 'Mars')"/>

Hope that helps,
Alex


________________________________

  From: Wade, John F. (MSFC-NAS902099)[TBE]
[mailto:John.F.Wade@(protected)]
  Sent: Wednesday, May 02, 2007 8:50 AM
  To: Wade, John F. (MSFC-NAS902099)[TBE]; Kevin Cormier
  Cc: xalan-j-users@(protected)
  Subject: RE: Xalan extension functions
 
 
  It's not Monday anymore.  Oh well.
 
  Here's the test case java code.  It does exactly nothing.
  Import java.util.*;

  public class MyTest

  {

  public MyTest()

  {}

 

  }

 
  The namespace and component definitions are:
  <?xml version="1.0" encoding="UTF-8" ?>
  <xsl:stylesheet
  xmlns:xsl=http://www.w3.org/1999/XSL/Transform
  xmlns=http://www.w3.org/1999/xhtml
  xmlns:doc=http://nwalsh.com/xsl/documentation/1.0
  exclude-result-prefixes="doc"
  xmlns:xalan=http://xml.apache.org/xalan
  xmlns:mytest="MyTest"
  extension-element-prefixes="mytest"
  version="1.0">

  <xalan:component prefix="mytest" functions="MyTest">
  <xalan:script lang="javaclass" src="xalan://MyTest/"/>
  </xalan:component>

 
 
  Down in one of the templates I've added a line that says:
  <xsl:value-of select="mytest:MyTest()"/>

 
  And the error I get is:

  (Location of error unknown)XSLT Error
(javax.xml.transform.TransformerException):
javax.xml.transform.TransformerException: Instance method call to method
MyTest requires an Object instance as first argument
 
  ...which isn't the error I remember getting last time I tried
this, but one thing at a time.
 
  Suggestions?
 
  *********************************
  John F. Wade, PE
  MSFC EO20 - TBE
 
 
 

________________________________

  From: Wade, John F. (MSFC-NAS902099)[TBE]
[mailto:John.F.Wade@(protected)]
  Sent: Fri 4/27/2007 3:29 PM
  To: Kevin Cormier
  Cc: xalan-j-users@(protected)
  Subject: RE: Xalan extension functions
 
 
  Classpath has been my thought, too.  I'm a real beginner at
this, and the environment I'm working with has two variants, so I'm not
sure how to determine what the classpath is in each case.  
  But, we'll start with the stylesheet and JAVA code on Monday and
go from there.
 
  Thanks.
 
  JFW
 
 

________________________________

  From: Kevin Cormier [mailto:kcormier@(protected)]
  Sent: Fri 4/27/2007 3:11 PM
  To: Wade, John F. (MSFC-NAS902099)[TBE]
  Cc: xalan-j-users@(protected)
  Subject: Re: Xalan extension functions
 
 

  Hi John,
 
  All I can think of with the information you've given is to check
that your
  class is on the classpath.
 
  Could you send your stylesheet and Java class, and also show how
you
  invoked the transformation and what the full error message was?
 
 
 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML dir=ltr><HEAD><TITLE>Re: Xalan extension functions</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3059" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2>Hi John,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2>&nbsp;&nbsp; I believe your problem that you haven't
created an instance of the class in which you're asking Xalan to execute a
method.&nbsp; Since your extension is written in Java, you should get rid of
the
&lt;xalan:component&gt; syntax and use the <A
href="http://xml.apache.org/xalan-j/extensions.html#java-namespace">abbreviated
syntax</A>.&nbsp; However, the lack of a package name may hurt you; I've never
tried that.&nbsp; If all you want to do is invoke the constructor, use syntax
like:</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2>&lt;xsl:variable
name="MyTest"&nbsp;select="mytest:new()"/&gt;</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2>The error message is saying that Xalan thinks you're
trying
to call an instance method on your object.&nbsp; To do that you have to include
the instance of the object in the method call.&nbsp; So, if your class had a
method "public void launch(String destination)" </FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2>&lt;xsl:value-of select="mytest:launch($MyTest,
'Mars')"/&gt;</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2></FONT></SPAN>&nbsp;</DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2>Hope that helps,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=462010414-02052007><FONT face=Arial
color=#0000ff size=2>Alex</FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid;
MARGIN-RIGHT: 0px">
 <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
 <HR tabIndex=-1>
 <FONT face=Tahoma size=2><B>From:</B> Wade, John F. (MSFC-NAS902099)[TBE]
 [mailto:John.F.Wade@(protected)] <BR><B>Sent:</B> Wednesday, May 02, 2007 8:50
 AM<BR><B>To:</B> Wade, John F. (MSFC-NAS902099)[TBE]; Kevin
 Cormier<BR><B>Cc:</B> xalan-j-users@(protected)<BR><B>Subject:</B> RE:
 Xalan extension functions<BR></FONT><BR></DIV>
 <DIV></DIV>
 <DIV id=idOWAReplyText60140 dir=ltr>
 <DIV dir=ltr><FONT face=Arial color=#000000 size=2>It's not Monday
 anymore.&nbsp; Oh well.</FONT></DIV>
 <DIV dir=ltr><FONT size=2></FONT>&nbsp;</DIV>
 <DIV dir=ltr><FONT size=2>Here's the test case java code.&nbsp; It does
 exactly nothing.</FONT></DIV>
 <DIV dir=ltr><FONT size=2><FONT size=2>
 <P>Import java.util.*;</P>
 <P>public class MyTest </P>
 <P>{</P>
 <P>public MyTest() </P>
 <P>{}</P>
 <P></P>
 <P>}</P></FONT></FONT></DIV>
 <DIV dir=ltr><FONT size=2></FONT>&nbsp;</DIV>
 <DIV dir=ltr><FONT size=2>The namespace and component definitions
 are:</FONT></DIV>
 <DIV dir=ltr><FONT size=2><FONT color=#0000ff size=2>
 <P>&lt;?</FONT><FONT color=#800000 size=2>xml</FONT><FONT color=#ff00ff
 size=2> </FONT><FONT color=#ff0000 size=2>version</FONT><FONT color=#0000ff
 size=2>="1.0"</FONT><FONT color=#ff00ff size=2> </FONT><FONT color=#ff0000
 size=2>encoding</FONT><FONT color=#0000ff size=2>="UTF-8"</FONT><FONT
 color=#ff00ff size=2> </FONT><FONT color=#0000ff
 size=2>?&gt;<BR>&lt;</FONT><FONT color=#800000
 size=2>xsl:stylesheet</FONT><FONT color=#ff00ff size=2> <BR></FONT><FONT
 color=#800000 size=2>xmlns</FONT><FONT color=#ff00ff size=2>:</FONT><FONT
 color=#ff0000 size=2>xsl</FONT><FONT color=#0000ff size=2>=<A
 href="http://www.w3.org/1999/XSL/Transform">http://www.w3.org/1999/XSL
/Transform</A></FONT><FONT
 color=#ff00ff size=2> <BR></FONT><FONT color=#ff0000 size=2>xmlns</FONT><FONT
 color=#0000ff size=2>=<A
 href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</A></FONT>
<FONT
 color=#ff00ff size=2> <BR></FONT><FONT color=#800000 size=2>xmlns</FONT><FONT
 color=#ff00ff size=2>:</FONT><FONT color=#ff0000 size=2>doc</FONT><FONT
 color=#0000ff size=2>=<A
 href="http://nwalsh.com/xsl/documentation/1.0">http://nwalsh.com/xsl
/documentation/1.0</A></FONT><FONT
 color=#ff00ff size=2> <BR></FONT><FONT color=#ff0000
 size=2>exclude-result-prefixes</FONT><FONT color=#0000ff
 size=2>="doc"</FONT><FONT color=#ff00ff size=2> <BR></FONT><FONT color=
#800000
 size=2>xmlns</FONT><FONT color=#ff00ff size=2>:</FONT><FONT color=#ff0000
 size=2>xalan</FONT><FONT color=#0000ff size=2>=<A
 href="http://xml.apache.org/xalan">http://xml.apache.org/xalan</A><BR></FONT>
<FONT
 color=#800000 size=2>xmlns</FONT><FONT color=#ff00ff size=2>:</FONT><FONT
 color=#ff0000 size=2>mytest</FONT><FONT color=#0000ff
 size=2>="MyTest"<BR></FONT><FONT color=#ff0000
 size=2>extension-element-prefixes</FONT><FONT color=#0000ff
 size=2>="mytest"<BR></FONT><FONT color=#ff0000 size=2>version</FONT><FONT
 color=#0000ff size=2>="1.0"&gt;</P>
 <P>&lt;</FONT><FONT color=#800000 size=2>xalan:component</FONT><FONT
 color=#ff00ff size=2> </FONT><FONT color=#ff0000 size=2>prefix</FONT><FONT
 color=#0000ff size=2>="mytest"</FONT><FONT color=#ff00ff size=2> </FONT><FONT
 color=#ff0000 size=2>functions</FONT><FONT color=#0000ff
 size=2>="MyTest"&gt;<BR>&lt;</FONT><FONT color=#800000
 size=2>xalan:script</FONT><FONT color=#ff00ff size=2> </FONT><FONT
 color=#ff0000 size=2>lang</FONT><FONT color=#0000ff
 size=2>="javaclass"</FONT><FONT color=#ff00ff size=2> </FONT><FONT
 color=#ff0000 size=2>src</FONT><FONT color=#0000ff
 size=2>="xalan://MyTest/"/&gt;<BR>&lt;/</FONT><FONT color=#800000
 size=2>xalan:component</FONT><FONT color=#0000ff
 size=2>&gt;</P></FONT></FONT></DIV>
 <DIV dir=ltr><FONT size=2></FONT>&nbsp;</DIV>
 <DIV dir=ltr><FONT size=2></FONT>&nbsp;</DIV>
 <DIV dir=ltr><FONT size=2>Down in one of the templates I've added a line that
 says:</FONT></DIV>
 <DIV dir=ltr><FONT color=#0000ff size=2>
 <P>&lt;</FONT><FONT color=#800000 size=2>xsl:value-of</FONT><FONT
 color=#ff00ff size=2> </FONT><FONT color=#ff0000 size=2>select</FONT><FONT
 color=#0000ff size=2>="mytest:MyTest()"/&gt;</P></FONT></DIV>
 <DIV dir=ltr><FONT size=2></FONT>&nbsp;</DIV>
 <DIV dir=ltr><FONT size=2>And the error I get is:</FONT></DIV>
 <DIV dir=ltr><BR>(Location of error unknown)XSLT Error
 (javax.xml.transform.TransformerException):
 javax.xml.transform.TransformerException: Instance method call to method
 MyTest requires an Object instance as first argument<BR></DIV>
 <DIV dir=ltr><FONT size=2>...which isn't the error I remember getting last
 time I tried this, but one thing at a time.</FONT></DIV>
 <DIV dir=ltr><FONT size=2></FONT>&nbsp;</DIV>
 <DIV dir=ltr><FONT size=2>Suggestions?</FONT></DIV>
 <DIV dir=ltr><FONT face=Arial color=#000000 size=2></FONT>&nbsp;</DIV></DIV>
 <DIV id=idSignature82333 dir=ltr>
 <DIV><FONT face=Arial color=#000000
 size=2>*********************************</FONT></DIV>
 <DIV><FONT face=Arial size=2>John F. Wade, PE</FONT></DIV>
 <DIV><FONT face=Arial size=2>MSFC EO20 - TBE</FONT></DIV>
 <DIV><FONT size=2></FONT>&nbsp;</DIV>
 <DIV>&nbsp;</DIV>
 <DIV>&nbsp;</DIV></DIV>
 <DIV dir=ltr><BR>
 <HR tabIndex=-1>
 <FONT face=Tahoma size=2><B>From:</B> Wade, John F. (MSFC-NAS902099)[TBE]
 [mailto:John.F.Wade@(protected)]<BR><B>Sent:</B> Fri 4/27/2007 3:29
 PM<BR><B>To:</B> Kevin Cormier<BR><B>Cc:</B>
 xalan-j-users@(protected)<BR><B>Subject:</B> RE: Xalan extension
 functions<BR></FONT><BR></DIV>
 <DIV dir=ltr>
 <DIV id=idOWAReplyText42563 dir=ltr>
 <DIV dir=ltr><FONT face=Arial color=#000000 size=2>Classpath has been my
 thought, too.&nbsp; I'm a real beginner at this, and the environment I'm
 working with has two variants, so I'm not sure how to determine what the
 classpath is in each case.&nbsp; </FONT></DIV>
 <DIV dir=ltr><FONT face=Arial color=#000000 size=2>But, we'll start with the
 stylesheet and JAVA code on Monday and go from there.</FONT></DIV>
 <DIV dir=ltr><FONT face=Arial color=#000000 size=2></FONT>&nbsp;</DIV>
 <DIV dir=ltr><FONT face=Arial size=2>Thanks.</FONT></DIV>
 <DIV dir=ltr>&nbsp;</DIV></DIV>
 <DIV id=idSignature42534 dir=ltr>
 <DIV><FONT face=Arial color=#000000 size=2>JFW</FONT></DIV>
 <DIV>&nbsp;</DIV>
 <DIV>&nbsp;</DIV></DIV>
 <DIV dir=ltr><BR>
 <HR tabIndex=-1>
 <FONT face=Tahoma size=2><B>From:</B> Kevin Cormier
 [mailto:kcormier@(protected)]<BR><B>Sent:</B> Fri 4/27/2007 3:11
 PM<BR><B>To:</B> Wade, John F. (MSFC-NAS902099)[TBE]<BR><B>Cc:</B>
 xalan-j-users@(protected)<BR><B>Subject:</B> Re: Xalan extension
 functions<BR></FONT><BR></DIV>
 <DIV>
 <P><FONT size=2>Hi John,<BR><BR>All I can think of with the information you
've
 given is to check that your<BR>class is on the classpath.<BR><BR>Could you
 send your stylesheet and Java class, and also show how you<BR>invoked the
 transformation and what the full error message
 was?<BR><BR><BR></FONT></P></DIV></DIV></BLOCKQUOTE></BODY></HTML>