0

我正在尝试缩小合适的 XML 转换语言/实用程序的范围,这将允许我进行一些非常繁重的 XML 转换(我预计文件大小约为 100 kb)。源文件和目标文件由近 280 个独特元素组成,最多 3 层对象嵌套代表客户技术订单。我有两到三个 XML 文档流,我需要将它们转换为单个 XML 文档(例如:2 个 XML 文档,一个来自订单管理,一个来自资源管理系统,以进行处理以生成单个目标文档)。

转换涉及评估源流中的节点并将它们分配给目标模式节点或进行一些转换,例如为目标模式设置变量值。源模式和目标模式中的节点数不一定相等。理想情况下,我希望规则是可配置的,而不是嵌入在代码中(不确定这是否可行)同时处理光。

我混合了定义为业务规则的评估元素和条件元素(使用脚本和 XPath 的混合,它粗略地看起来像这样“ If(/OrderData/Servicetype != /ResourceData/ServiceType) then /Target/ServiceType = /OrderData/ServiceType)

我仍在评估单程解析器是否足以完成整个转换。我的主要目标是:

  1. 有一个可以定义解析规则的可配置文件
  2. 可以读取此文件并按规则解析的引擎。主要是可配置的,我认为它需要更多的是基于解释器的,因为我相信可配置性要求会自动将编译推出窗口。
  3. 可配置文件可以在一些定义的语法中定义,用于评估、函数等。

对 XML 模式的任何添加显然都需要对规则集进行添加。
理想情况下,我只想更新规则集和 inputXML 模式以使引擎适应新的解析规则/输入。

我希望能够一次性操作整个模式。
尝试解析整个 Target 架构导致抛出 Java 类大小错误,这意味着我需要拆分架构来解析它。
此外,由于这个 XSLT,我认为由于尺寸的原因,它只会导致大量的处理时间。我想这只会给我一个 XML 字符串解析的选项。(我希望有awkXML :))。
如果有人可以指导我找到任何可以提供帮助的资源,我会很高兴。是否有等效的 JAVA 实用程序?

我知道这听起来像是写给圣诞老人的圣诞愿望清单 :) 但如果有人已经做过类似上述的事情,请给我留言或建议。如果需要,我可以共享 XML 模式和定义的确切翻译规则的示例。

4

1 回答 1

1

有成千上万的人使用 XSLT 完全按照您的描述进行操作。不要再看了。它甚至可以被合理地描述为“用于 XML 的 awk”。通过使用 XSLT 2.0 而不是 1.0 版,您将获得很多生产力优势,而 1.0 版仍然比 2.0 更广泛可用。对于几百 Kb 的文件大小,您无需担心流式传输。

于 2012-09-22T09:06:30.943 回答