2011-02-06 9 views
0

こんにちは私はEclipse XSLプラグインの問題に直面しています。xmlを出力として生成するために私のxslに拡張機能を使用しています。しかし、私は以下のエラーに直面している:Eclipse xsltプラグイン

17:55:38,998 INFO [main] Main - javax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl 
17:55:39,001 INFO [main] Main - java.endorsed.dirs=C:\allinone\JRepo\Java\newwork\workspace\.metadata\.plugins\org.eclipse.wst.xsl.jaxp.launching\endorsed 
17:55:39,006 INFO [main] Main - launchFile: C:\allinone\JRepo\Java\newwork\workspace\.metadata\.plugins\org.eclipse.wst.xsl.jaxp.launching\launch\launch.xml 
17:55:39,506 INFO [main] JAXPSAXProcessorInvoker - Transforming... 
(Location of error unknown)javax.xml.transform.TransformerException: Instance method call to method getFruitType requires an Object instance as first argument 
17:55:39,528 INFO [main] JAXPSAXProcessorInvoker - Done. 

XSLファイル:

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Access packaged method in a class file, assigning the classpath to the prefix.--> 

<xsl:stylesheet 
version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:fo="http://www.w3.org/1999/XSL/Format" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:fn="http://www.w3.org/2005/xpath-functions" 
xmlns:pf="com.altova.extfunc.PackagedfruitStatic"> 

<xsl:output indent="yes" exclude-result-prefixes="fn pf xsl fo xs"/> 

<xsl:template match="/"> 
<xsl:variable name="myLemon" select="'yellow'" /> 

<test> 
<staticMethod><xsl:value-of select="pf:getFruitType()"/></staticMethod> 
</test> 
</xsl:template> 

</xsl:stylesheet> 

Javaクラスファイル:

package com.altova.extfunc; 

public class PackagedfruitStatic { 
    //static variable 

    public static String getFruitType() 
    { 
     return " Static fruit"; 
    } 
} 

を私はEclipseプラグインでのXalanパーサを設定しました。私は最新のJava EE IDE(Helios)をEclipseから使用しています。

答えて

1

これはEclipseの問題ではないと思われますが、クラスパスとXSLTの問題です。

  1. クラスファイル(PackagedfruitStatic.class)はcom/altova/extfuncに位置していることを確認し、これらのサブディレクトリを含むベースディレクトリをクラスパスにあること。 (com.altova.extfuncAltova XSLT extensionsに使用されていることに注意してください。あなたはあなたのXalan拡張のために別のパッケージ名を選ぶべきです)。

  2. xsl:outputではexclude-result-prefixesという属性は使用できません。ルート要素(xsl:stylesheet

  3. スタイルシートにはversion="2.0"が指定されていますが、Xalan XSLTプロセッサはXSLT 2.0をサポートしていません。

+0

これは完全にクラスパスの問題です。ソースファイル/ jarファイルをclasspathに追加しました。プラグインのclasspathの場所にあります。 (Runas - > XSLT - >クラスパス – srinannapa