首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用不同版本的Saxon创建DeltaXML核心实例

使用不同版本的Saxon创建DeltaXML核心实例
EN

Stack Overflow用户
提问于 2016-12-02 00:20:48
回答 1查看 116关注 0票数 0

我正在使用XMLCorev7.1及其Java API (PipelinedComparatorS9类)来实现一个DeltaXML比较工具。

我的代码首先使用我们自己的Saxon XSLT处理器(v9.6.0.9)预处理XML以进行比较。Saxon处理器使用我们公司的OEM许可证,在代码中激活,而不是通过外部许可证文件,那么我们如何使用相同的处理器而不是DeltaXML的内置处理器呢?

EN

回答 1

Stack Overflow用户

发布于 2016-12-02 00:25:44

在你的问题中有两个独立的问题:

1) 您要与DeltaXML核心一起使用的撒克逊处理器的版本

SaxonCorev7.1API支持从Saxon9.3到DeltaXML 9.5 (Saxon9.5.1.5实际上包含在发行版中)。如果发现此范围之外的Saxon版本,则会抛出“不支持的Saxon版本”异常。下一版本的核心(名义上是8.2)的意图是支持从Saxon 9.5到Saxon 9.7,尽管这仍然可能会发生变化。不幸的是,这意味着,在下一版Core发布之前,您需要确保XSLT与Saxon 9.5兼容。这样的XSLT更改很可能与XSLT 3.0规范(目前是候选推荐标准)的更改有关。

2) 如何在DeltaXML Core中使用Saxon的原始设备制造商许可版本

DeltaXML PipelinedComparatorS9和DocumentComparator类都有以Saxon处理器实例作为参数的构造函数重载。在这里作为参数传入的处理器实例也将在内部使用--而不是包含在发行版中的处理器。下面的简化Java代码展示了PipelinedComparatorS9的这种方法:

代码语言:javascript
复制
import net.sf.saxon.s9api.XdmNode;
import net.sf.saxon.s9api.Processor;
import com.deltaxml.cores9api.PipelinedComparatorS9;

Processor saxonProcessor= new Processor(true);
// invoke your own activation here:
Activator.activate(saxonProcessor);
XdmNode input1= loadInput1(saxonProcessor);
XdmNode input2= loadInput2(saxonProcessor);

PipelinedComparatorS9 pcS9= new PipelinedComparatorS9(saxonProcessor);
XdmNode resultNode= pcS9.compare(input1, input2);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40915514

复制
相关文章

相似问题

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