首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在saxon 9.7+ s9api中使用打包(导出)样式表?

如何在saxon 9.7+ s9api中使用打包(导出)样式表?
EN

Stack Overflow用户
提问于 2020-03-24 20:02:48
回答 1查看 55关注 0票数 0

从Saxon9.7开始,我们必须使用不同的s9api过程来“导入”打包样式表。这里说:“样式表包可以.使用. s9api API.导入。”然后他提到了这些的细节。

当我读到它,希望它会很简单,我锁定了这一点:

样式表导出文件..。被任何接受源样式表的Saxon接口所接受。

因此,我创建了这个MCV示例:

代码语言:javascript
复制
import java.io.*;
import net.sf.saxon.Configuration;
import net.sf.saxon.s9api.Processor;
import net.sf.saxon.s9api.XsltCompiler;
import net.sf.saxon.s9api.XsltExecutable;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
public class test {
    public static void main (String args[]) throws Exception {
        Processor saxProc = new Processor(false);
        Configuration saxCfg = saxProc.getUnderlyingConfiguration();
        XsltCompiler saxComp = saxProc.newXsltCompiler();
        File xslmain = new File(args[0]);
        Source xsl = new StreamSource(xslmain);
        XsltExecutable saxExe = saxComp.compile(xsl);
    }
}

这样执行(对ee、pe和他使用9.9.1.7J )不会引发异常:

代码语言:javascript
复制
$ javac -classpath saxon9pe.jar test.java
$ java -classpath .:saxon9he.jar test something.xsl

但是,如果我打包something.xsl (即使用EE将其导出到xml文件)并像这样执行MCV,则会引发异常:

代码语言:javascript
复制
$ java -classpath .:saxon9he.jar test something-exported.xml
Error
  SXPK0002: Cannot load expression with tag indexedFilter2. The stylesheet uses Saxon-EE features
Exception in thread "main" net.sf.saxon.s9api.SaxonApiException: Cannot load expression with tag indexedFilter2. The stylesheet uses Saxon-EE features

难道我不能使用EE打包xsl文件,分发HE,并使用HE读取打包的样式表来执行转换吗?如果是,怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-24 22:29:55

尝试用-target:HE编译它。原则上,这应该阻止Saxon生成那些他运行时不会识别的构造。

不过,我不得不说,这并不是很彻底的测试。还可能需要使用-opt选项禁用选定的优化。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60838463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档