我目前正在研究使用 XSLT 2.0,但我找不到任何开源 Java 实现(Saxon-B似乎符合要求,但不支持模式)。
我错过了什么吗?
是的,我正在回答我 2.5 年前的问题:
我还没有尝试过,但我只是偶然发现了Eclipse PsychoPath,它(根据文档)是一个 XPath 2.0 XML Schema Aware 处理器,它通过了 96% 的 XPath 2.0 测试套件(版本 1.1M1)。
唯一的一个是 Saxon-HE:
W3C 托管它的在线版本进行测试:
还有类似 JSFiddle 的版本:
Frameless 项目托管了它的 JavaScript 版本:
还有一个使用它的 App Engine 项目:
除此之外,还有一个不完整的 Xerces 扩展,它实现了 XPath 2.0:
一个实现 XPath 2.0 的 Eclipse 扩展:
部分实现 XSLT 2.0 的不完整 Xalan-J 分支:
在 Xalan-J Interpretive 处理器中支持 XSLT 2.0 的一些原型工作在 2003 年继续进行,但随后就落后了。该原型工作仍可在 xslt20 分支 http://svn.apache.org/repos/asf/xalan/java/branches/xslt20/上获得,但从那时起,nobdy 就开始着手进行最初的原型设计,而 Xalan PMC 尚未制定任何支持 XSLT 2.0 的计划。
以及可以在Nashorn/Avatar.js上运行的Saxon-CE的服务器端实现:
参考
对于存档,还有AltovaXML,在 XMLSpy 等中使用的免费啤酒、模式感知 XSLT 2.0 引擎。
不幸的是,像 XMLSpy 一样,它仅适用于 Windows。
你确定你真的需要一个模式感知处理器吗?它可能有助于更快地发现样式表中的错误,但成本可能超过收益(无论是在金钱方面还是在许可方面)。
Saxon-SA 是 Saxon B 的模式感知版本。它包含完整的开源 Saxon B(在 Mozilla 公共许可证下发布)。只有“模式感知”的东西是封闭源代码的,所以大部分仍然是自由软件(尽管只是在言论自由中......)。