I forgot to tell you that you should get Xalan 2.4.1. We have fixed a lot
of problems wrt extension support in this release.  Support for namespace
and instance methods is quite limited in Xalan 2.4.0.

Morris Kwan
XSLT Development
IBM Toronto Lab
Tel: (905)413-3729
Email: [EMAIL PROTECTED]



                                                                                       
                                            
                      Mariella Di                                                      
                                            
                      Giacomo                  To:       Morris 
Kwan/Toronto/IBM@IBMCA, [EMAIL PROTECTED]                          
                      <[EMAIL PROTECTED]        cc:       [EMAIL PROTECTED]      
                                            
                      v>                       Subject:  Re: XSLTC, abbreviated syntax 
for extension implemented in  Java  and     
                                                Compiler error(s):  Cannot find 
external method ...                                
                      11/15/2002 10:57                                                 
                                            
                      AM                                                               
                                            
                                                                                       
                                            
                                                                                       
                                            



Hi,

I am sorry for the "." after the package name but it is a typo.
I have tried also what you have written in the email, but I still get

java org.apache.xalan.xsltc.cmdline.Compile xslt_functions.xsl
Compiler error(s):
   Cannot find external method 'parseQuery.new' (must be public).
   Cannot find external method 'getVdkKey' (must be public).
   Cannot find external method 'getSessionId' (must be public).

Could you please help ?
Thanks,

Mariella


This is how the xsl file looks like

_____________________________
<?xml version="1.0"?>
<xsl:stylesheet
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform";

     xmlns:xalan="http://xml.apache.org/xalan";
     xmlns:XSLTFunctionsPackage="xalan://pack1.team.xsltfunctions"
     version="1.0">

   <xsl:variable name="myType" select="XSLTFunctionsPackage:parseQuery.new
()"/>

    <xsl:variable name="vdkKey"
select="XSLTFunctionsPackage:getVdkKey($myType)"/>
   <xsl:variable name="tmpFileName"
select="XSLTFunctionsPackage:getSessionId($myType,$vdkKey)"/>

</xsl:stylesheet>

__________________________________________

This is how the Java class looks like:
_____________________________________________________


package pack1.team.xsltfunctions;

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;


public class parseQuery extends HttpServlet {

   static String mVdkKey = "";
   static String mRestOfUrl = "";
   static String mSessionId = "";
   static String mDbsSearched = "";



   public void parseQuery()
     {}

   public void setVdkKey(String pVdkKey) {
          mVdkKey = pVdkKey;
   }

  public String getVdkKey() {
          return mVdkKey;
     }



  public String getSessionId() {
          return mSessionId;
   }

................
}

________________________________________________________

The JAVA classpath contains the pathname of the jar file
that contains that class.


At 09:58 AM 11/15/02 -0500, [EMAIL PROTECTED] wrote:
>Hi,
>
>You are not using the namespace format correctly. Please remove the last
>dot from xmlns:XSLTFunctionsPackage="xalan://pack1.team.xsltfunctions.".
>Also if "pack1.team.xsltfunctions" is a package name, then "
>XSLTFunctionsPackage:new()" is not valid syntax. You cannot invoke a
>constructor on a package. The other issue is for an instance method, you
>should not prepend the class name to the extension function. In this case
>the class name is determined from the first argument to the extension
>function.
>
>The correct usage should look like this:
>
>xmlns:XSLTFunctionsPackage="xalan://pack1.team.xsltfunctions"
>
><xsl:variable name "myType" select="XSLTFunctionsPackage:parseQuery.new
()">
><xsl:variable name="vdkKey" select="XSLTFunctionsPackage:getVdkKey
>($myType)"/>
>
>  <xsl:variable name="tmpFileName"
>select="XSLTFunctionsPackage:getSessionId($myType, $vdkkey)"/>
>
>
>Morris Kwan
>XSLT Development
>IBM Toronto Lab
>Tel: (905)413-3729
>Email: [EMAIL PROTECTED]
>
>
>
>
>
>                       Mariella
> Di
>
>                       Giacomo                  To:
> [EMAIL PROTECTED]
>                       <[EMAIL PROTECTED]        cc:
 >
>                       v>                       Subject:  XSLTC,
> abbreviated syntax for extension implemented in Java  and Compiler
>                                                 error(s):  Cannot find
> external method ...
>                       11/14/2002
> 07:32
>
>                       PM
 >
>                       Please respond
> to
>
>                       xalan-dev
 >
>
>
>
>
>
>
>
>
>
>
>Hello,
>
>I was trying to compile using org.apache.xalan.xsltc.cmdline.Compile
>(version
>1.2) an XSL file on Solaris 2.8 and xalan 2.4.0
>I am using the abbreviated syntax for extension functions implemented in
>Java.
>
>I have tried the possible cases that are described in the documentation
and
>I
>always get the same error:
>
>Compiler error(s):
>  Cannot find external method 'parseQuery.getVdkKey' (must be public).
>  Cannot find external method 'parseQuery.getSessionId' (must be public).
>
>1) package format
>The java classes I am using belong to a package
>called "pack1.team.xsltfunctions"
>All the Java methods are public.
>The first returns a String
>The second takes a String and returns a String
>
>The file1.xsl looks like:
>
>__________________
>
><?xml version="1.0"?>
><xsl:stylesheet
>xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>
>xmlns:xalan="http://xml.apache.org/xalan";
>xmlns:XSLTFunctionsPackage="xalan://pack1.team.xsltfunctions."
>
><xsl:variable name "myType" select="XSLTFunctionsPackage:new()">
><xsl:variable name="vdkKey" select
>="XSLTFunctionsPackage:parseQuery.getVdkKey
>($myType)"/>
>
>  <xsl:variable name="tmpFileName"
>select="XSLTFunctionsPackage:parseQuery.getSessionId($myType, (string)
>$vdkkey)"/>
>
></xsl:stylesheet>
>________
>
>2) package format and I made the Java classes
>as public static methods
>
>The file1.xsl looks like
>
>____________
>
><?xml version="1.0"?>
><xsl:stylesheet
>xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>
>xmlns:xalan="http://xml.apache.org/xalan";
>xmlns:XSLTFunctionsPackage="xalan://pack1.team.xsltfunctions."
>
><xsl:variable name="vdkKey" select
>="XSLTFunctionsPackage:parseQuery.getVdkKey
>()"/>
>
>  <xsl:variable name="tmpFileName"
>select="XSLTFunctionsPackage:parseQuery.getSessionId((string)$vdkkey)"/>
>
>
></xsl:stylesheet>
>
>_______
>I get the same errors
>
>3)
>I have tried the "Class format" Name Space and I get the same errors.
>
>Could you please tell me what is wrong ?
>Could you please help ?
>
>Thanks,
>
>Mariella




Reply via email to