Saxonica EE 作为 XSLT 转换器

问题描述

我们计划在 Cloud Foundry 上的 Spring Boot 微服务中使用 Saxonica EE(尚未购买),并且我们希望将 XSLT 编译版本以 XML 格式存储在 Redis 缓存中,以便在进行转换时减少耗时,我有下面的问题,你能指导我正确的方向。

  1. 我们如何将具有许可证的 Saxon EE 库部署到云端,需要遵循任何标准做法。

  2. 是否可以得到XML格式的XSLT编译代码,以便我可以存储在Redis缓存中,这种方法是否有意义(如果XSLT有任何变化,我每次都会重新编译)>

  3. 任何 java 编程示例,我们在所有 xsls 中都大量使用 xsl:include,如果有相同用例的任何示例,那就太好了。

解决方法

有关云部署许可的商业问题,超出了 StackOverflow 的范围 - 请直接联系 Saxonica 进行讨论。

Saxon-EE 可以将样式表编译为 SEF 文件,这确实是一种 XML 格式,但我不知道将编译后的样式表存储在 Redis 中是否有意义。

如果您在使用 xsl:include 时遇到问题,我建议您将其作为一个单独的问题提出。关于使用特定功能的一般建议请求不太可能引起有用的响应 - 如果您有特定的技术问题或特定的技术问题,StackOverflow 效果最佳。 (如果您需要一般性建议,我的 XSLT 参考书有大约 4 页关于 xsl:include 的内容,并附有示例)。

,

我建议您首先按照如下所述打好清晰的基本基础:

关于选择Redis进行存储:

如果您将 Redis 用作存储,您通常必须先将(XSLT 处理的)输出序列化为 XML 或 JSON,然后再将其存储到 Redis 中。这也意味着,任何时候您想以更人性化的可读方式访问数据时,都必须反序列化 Redis 字符串。

对您的项目符号问题的回答(与 XSLT 相关):

[1] 云部署:即使您想使用云解决方案,您仍然需要定义要在哪个服务器上安装 Java/SDK 和 Saxon 库 (jar)。关于云解决方案的许可细节,我会参考 Saxonica 公司。

[2] 需要编译: Saxon XSLT 通常不被用户编译(除非有原因)。我怀疑当您在此项目符号中说“已编译”时,您指的是转换过程,使用源 XML、XSLT 进行处理并获得输出 XML。 - 如果是这样,您可以设置所需的输出格式(XML/HTML/XHTML)。每次更改源文件或 XSL 文件中的某些内容时,都需要运行 XSLT 以查看 XML 输出文件中的更改。

[3] 需要 Java 示例:您不需要 Java 知识来构建 XSL 样式表文件。如果您选择在 Java 上运行,您需要在将运行 Saxon XSLT 的机器上设置 Java/SDK。设置(Java/SDK 和 XSLT)后,您可以选择从终端调用 XSLT 或创建将调用 XSLT 的脚本(我在 Linux 中使用 bash 脚本)。

我建议您在解决 Java 环境和 Saxon XSLT 的同时开始使用在线 XSLT 工具。通过这种方式,您可以构建 XSL 文件或测试任何现有的 XSL 文件,以便根据您的需要进行调整。