看起来JDK提供了自己的apache xalan着色版本。

我发现了使用XSLT生成XML的错误(错误是新行,并且在某些cdata节中添加了缩进)。此问题已在未发行的jdk12中修复。我想避免这种情况,在这种情况下,我既要等待oracle来解决问题,又要升级使用的JRE。

我考虑将xalan作为通过maven的依赖项。这确实有效,并且似乎可以解决该问题,但是似乎xalan的上次更新时间是2014年7月24日。距上次更新以来已经超过4年。

我希望能够依赖xalan或其他支持XSLT的东西,而无需依赖JRE。

  • oracle是否为JRE独立于apache维护自己的xalan版本?
  • 为什么自2014年7月以来未在maven上更新xalan?
  • 取决于xalan会引起各种各样的问题吗?我确实在Dealing with "Xerces hell" in Java/Maven?中看到xml-apis被排除在外,以尝试避免某些问题。
  • 最好使用另一个不太可能被JVM使用的XML库吗?什么图书馆值得研究。
  • 最佳答案

    尽我所能回答(但您的某些问题需要内部知识):

  • 据我所知,Xerces和Xalan的JRE版本是Apache Xerces和Xalan的修改后的版本,但修改不大,因此需要付出一定的努力来在Apache版本之间移植错误修复程序。
  • Xalan尚未修改,因为没有人在处理它。它最初的赞助商是IBM和Sun(它部分来自IBM的LotusXSL,部分来自Sun的XSLTC)。 Sun的开发人员在被Oracle收购后离开了。 IBM将其投资转移到了商业Websphere XSLT 2.0处理器和Datapower引擎上。因此Xalan仍然是XSLT 1.0处理器,这意味着规范在19年内没有发生变化,并且代码也相应地变得稳定,因此几乎不需要修复错误。需要比Xalan提供更多功能的用户通常会迁移到Saxon,除非他们有使Websphere或Datapower负担得起的预算。
  • 不,有可能让应用程序使用Xalan和/或Xerces的Apache版本而不会遇到任何技术问题。
  • (我对这里很感兴趣)迁移到Saxon可以为您提供XSLT 2.0和XSLT 3.0的所有功能和生产力优势。产品不断开发,维护和良好支持;在某些情况下,您可能会看到性能上的显着提高;多年来,在诊断,可配置性和仪器仪表等领域已取得了很大的进步。但是,好处与是否在JVM中也使用代码无关。
  • 关于java - 不使用JRE的XML utils的Java中的XSLT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53808761/

    10-10 02:50