Eclipse xslt плагин - PullRequest
       0

Eclipse xslt плагин

0 голосов
/ 06 февраля 2011

Привет! У меня возникла проблема с плагином Eclipse XSL. Я использую функцию расширений в моем xsl для генерации XML в качестве вывода. Но я сталкиваюсь с ошибкой ниже:

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";  
    }
}

Я настроил парсер Xalan в плагине Eclipse. Кстати, я использую последнюю версию JAVA EE IDE (Helios) от eclipse

1 Ответ

1 голос
/ 06 февраля 2011

Я подозреваю, что это не проблема Eclipse, а скорее проблема classpath и XSLT.

  1. Убедитесь, что файл класса (PackagedfruitStatic.class) находится в com/altova/extfunc и что базовый каталог, содержащий эти подкаталоги, находится в пути к классам.(Также обратите внимание, что com.altova.extfunc используется для расширений Altova XSLT . Я думаю, вам следует выбрать другое имя пакета для ваших расширений Xalan).

  2. exclude-result-prefixesатрибут не разрешен в xsl:output.Поместите его в корневой элемент (xsl:stylesheet)

  3. Таблица стилей задает version="2.0", но XSLT-процессор Xalan не поддерживает XSLT 2.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...