0

数日前から、Saxon HE 9.4.0.7 を使用して、クラス「XsltExecutable」のメソッド「getGlobalParameters」を正常に使用しました。タスクは、XSLT ファイルのパラメーターを取得することです。

Saxon HE 9.5.0.2 に変更すると、このメソッドは NullPointerException を発生させました。以下に例を示します。バージョン 9.4.0.7 では完全に動作しますが、バージョン 9.5.0.2では動作しません(NullPointerException が発生します)。誰かがこの問題を見つけて解決するのを手伝ってくれますか? 前もって感謝します。

import java.io.*;
import java.util.*;
import javax.xml.transform.stream.*;
import net.sf.saxon.*;
import net.sf.saxon.s9api.*;
import org.junit.*;

public class GlobalParametersTest {

@Test
public void globalParametersTest() throws UnsupportedEncodingException, SaxonApiException {
        Configuration configuration = Configuration.newConfiguration();
        Processor processor = new Processor(configuration);
        XsltCompiler xsltCompiler = processor.newXsltCompiler();

        String source="<?xml version='1.0'?>" +
"                <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'" +
"                xmlns:xs='http://www.w3.org/2001/XMLSchema'" +
"                version='2.0'>" +

"                <xsl:param name='surname' as='xs:string' />" +
"                <xsl:param name='age' as='xs:integer' />" +

"                <xsl:template match='/'><xsl:element name='root' /></xsl:template>" +
"                </xsl:stylesheet>";

        XsltExecutable xsltExecutable = xsltCompiler.compile(new StreamSource(new ByteArrayInputStream(source.getBytes("UTF-8"))));
        Map<QName, XsltExecutable.ParameterDetails> params = xsltExecutable.getGlobalParameters();

        System.out.println();
        int i=0;
        for (QName key: params.keySet()) {
            System.out.println("Parameter n."+(++i)+": "+key);
        }
        System.out.println();
    }
}

以下は、Saxon-HE の動作バージョンと非動作バージョンのそれぞれの pom.xml のセグメントです。

    <dependency>
        <groupId>net.sf.saxon</groupId>
        <artifactId>Saxon-HE</artifactId>
        <version>9.4.0.7</version>
    </dependency>

また

    <dependency>
        <groupId>net.sf.saxon</groupId>
        <artifactId>Saxon-HE</artifactId>
        <version>9.5.0.2</version>
    </dependency>
4

0 に答える 0