什么XML转换适合这里

时间:2012-09-22 03:07:54

标签: xml transformation configurable

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

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

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

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

  1. 有一个可配置文件,可以定义解析规则
  2. 可以读取此文件并按规则解析的引擎。主要是可配置的我相信它需要更多的基于解释器,因为我相信可配置性要求会自动推出编译窗口。
  3. 可配置文件可以在某些定义的语法中定义,用于评估,功能等。
  4. 对XML模式的任何添加显然都需要添加规则集 理想情况下,我只想更新规则集和inputXML模式,以使引擎适应新的解析规则/输入。

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

    我知道这听起来像是写给圣诞老人的圣诞愿望清单:)但是如果有人已经做了类似上面的事情,请给我一个喊叫或建议。如果需要,我可以共享XML模式以及定义的确切转换规则的示例。

1 个答案:

答案 0 :(得分:1)

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