/ / Eclipse xslt Plugin - XML, Eclipse, Eclipse-Plugin, XSLT

Eclipse xslt Plugin - XML, Eclipse, Eclipse-Plugin, XSLT

Hi ich habe ein Problem mit Eclipse XSL-Plugin, ich benutze Erweiterungen Feature auf meinem Xsl, um XML als Ausgabe zu generieren. Aber ich stehe vor dem folgenden Fehler:

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:allinoneJRepoJavanewworkworkspace.metadata.pluginsorg.eclipse.wst.xsl.jaxp.launchingendorsed
17:55:39,006 INFO  [main] Main  - launchFile: C:allinoneJRepoJavanewworkworkspace.metadata.pluginsorg.eclipse.wst.xsl.jaxp.launchinglaunchlaunch.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-Datei:

<?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-Klassendatei:

package com.altova.extfunc;

public class PackagedfruitStatic {
//static variable

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

I Konfigurierter Xalan-Parser im Eclipse-Plugin. Übrigens verwende ich die neueste JAVA EE IDE (Helios) von Eclipse

Antworten:

1 für die Antwort № 1

Ich vermute, dass dies kein Eclipse-Problem ist, sondern eher ein Classpath- und XSLT-Problem.

  1. Stellen Sie sicher, dass sich die Klassendatei (PackagedfruitStatic.class) in befindet com/altova/extfuncund dass das Basisverzeichnis, das diese Unterverzeichnisse enthält, im Klassenpfad enthalten ist. (Beachten Sie auch, dass com.altova.extfunc wird für verwendet Altova XSLT-Erweiterungen. Ich denke, du solltest einen anderen Paketnamen für deine Xalan-Erweiterungen wählen).

  2. Das exclude-result-prefixes Attribut ist nicht erlaubt xsl:output. Setzen Sie es auf das Wurzelelement (xsl:stylesheet)

  3. Das Stylesheet spezifiziert version="2.0", aber der Xalan XSLT-Prozessor unterstützt XSLT 2.0 nicht.