2009-01-27 122 views
5

我正在寻找一个用于半自动 XSLT生成的工具。如何从XML样本生成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,例如执行手动“字段”映射,那将会很不错。

编辑:澄清。

+0

您需要澄清您期望它应对的差异的程度以及数据的独特性,以便能够推断从一个文件到另一个文件的映射 - 我认为这是可行的,达到了一些限制。 – 2009-01-27 11:40:41

回答

9

我怀疑即使是简单的转换规则也可以自动生成。

例如采取XML

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

和目标

<person>Paul</person> 

这应该是一个相当普遍的组合。我甚至无法手动决定(没有需要转换的人的帮助),从哪个标签创建目标<person>,从<father>或<child>,因此我怀疑应用程序会在这里产生一些理智的东西。

更新: 如果某种拖放&落XSLT代会是你合适,还有一些商业产品可用,但他们不能从一个目标文件产生XSLT。但拖&降应至少比完全手工写它一个更好的解决方案:

+0

问题澄清:如有冲突,需要手动干预。 – 2009-01-27 12:30:42

+0

正如你所建议的,我最终自己写了XSLT,使用Stylos Studio,谢谢。 Stylus Studio有一个XSLT映射器,但在我的情况下,它是无用的,因为它仅仅是元素映射的元素,我还需要选择属性。但它有一个很好的界面,包括调试。 但是你仍然需要了解XSLT和XPath才能真正使用这个东西。 – 2009-05-14 06:11:25

2

我已经使用Altova Map强制生成大尺寸XML的XSLT,并且效果很好。你可以做几乎所有的逻辑,如逻辑,字符串函数,数学函数和用户定义的功能等等,但问题是,当你的XML非常庞大时,蜘蛛就像网络一样,有时会让你感到困惑和混乱,但这只是预期。我想维修可能在阿尔托瓦方面有点艰难。