0

I need to execute lots (abot 100-200) of parallel XML transformation in a cycle. Average XML size is about 5Kb. Relation of used XSL to XML to be parsed is about 0.25, that means that some XMLs are sharing the same XSL. XSL here could be cached, but unfortunately XSL is not stored in File, and generated dynamically within an application. So what XSLT processor suits better for my case?

p.s. language - Java, transformation final result type - String

thanks in advance

4

1 回答 1

1

我不确定我是否完全理解了这个问题,但我会尝试。

首先,似乎有两个独立的问题,我认为它们是完全正交的。首先是如何缓存样式表的问题:如果您多次运行转换,那么最好编译一次并重复使用它。通常这不是问题,除非没有足够的内存来缓存所有样式表,在这种情况下您需要某种 LRU 策略。

第二个问题是您选择的 XSLT 处理器。我认为无论您选择哪种处理器,您都可以使用相同的缓存架构,所以这个问题不会限制您的选择。在 Java 世界中,主要的免费/开源处理器是 Xalan(来自 Apache 的版本并嵌入在 JDK 中)和 Saxon-HE;由于 Saxon-HE 支持 XSLT 2.0 并且通常更快,因此几乎没有竞争。在付费处理器中,主要竞争者是 IBM 的 Websphere 处理器和 Saxon-EE;他们都应该轻松处理这种工作负载,但是除非您对 IBM 中间件进行大量投资,否则您不太可能考虑使用 IBM 产品。

(我不会试图隐瞒我是 Saxon 产品的开发者......)

于 2013-02-14T21:40:03.797 回答