如何从XML示例生成XSLT

时间:2009-01-27 09:24:02

标签: xml xslt xsd

我正在寻找半自动 XSLT生成的工具。

给出2个XML文件,来源:

<elm>XXX</elm>

和目标:

<exx>XXX</exx>

该工具应该生成XSLT文件,该文件从源生成目标。 查看内容,它应该标识级别,位置,元素名称等的更改。 这个没有通用的解决方案,但我只需要简单的转换。

可能的实施:

1. scan the source, map XML data "XXX" to element path "elm"
2. scan the target, map XML data "XXX" to element path "exx"
3. output target XML structure, output XSLT mapping of "XXX", "elm" -> "exx"

如果发生冲突,则需要手动干预。冲突可能是“XXX”,而不是源头上的。

如果该工具也可以识别XSD / DTD,那将是很好的,例如进行手动“字段”映射。

修改:澄清。

3 个答案:

答案 0 :(得分:9)

我怀疑甚至可以自动生成简单的转换规则。

例如,使用XML

<family>
  <father>Paul</father>
  <mother>Maria</mother>
  <child>Paul</child>
</family>

和目标

<person>Paul</person>

这应该是一个非常常见的组合。我甚至无法手动决定(没有想要转换的人的帮助)来自哪个标签的目标<person&gt;已创建,来自<father&gt;或<child&gt;所以我怀疑一个应用程序会产生一些理智的东西。

<强>更新 如果某种拖放式XSLT生成对你来说没问题,可以使用一些商业产品,但它们不能从目标文件生成XSLT。但拖放应该至少比手动完全写出更好的解决方案:

答案 1 :(得分:4)

你检查过Altova MapForce吗?它不是免费软件,但我相信它可以处理你正在寻找的东西。 http://www.altova.com/mapforce.html

答案 2 :(得分:2)

我已经使用Altova Map force为大尺寸XML生成XSLT并且运行良好。你可以做几乎所有逻辑,如逻辑,字符串函数,数学函数和用户定义的函数等。但事实是,当你的XML非常庞大时,像web这样的蜘蛛有时会让你感到困惑和混乱,但这只是预期的。我想altova中的维护可能不那么难。