微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用xsd将csv转换为xml

我试图找到一种可重用的方法获取CSV文件并从中生成符合指定XSD的 XML文件.我还没有找到一个可重复使用的方法.我使用了Altova MapForce,它允许我导入CSV文件和XSD,进行映射而不是从中生成代码,但是只要XSD发生变化,代码就需要重新生成. Altova也生产了很多代码.

我理想的解决方案是一组Java类,我可以将CSV文件提供给XSD,并从中获取XML文件.我找不到这样的东西,我正在考虑可能创造一些东西.

想法?这里有什么东西使用基于this问题的XSLT吗?

谢谢.

这似乎很容易做到,但事实并非如此. XML Schema是一种文档验证语言,而不是文档生成语言.它没有告诉你如何制作新文件;它会告诉您所制作的文件是否有效.远远不是那些不一样的东西.

例如,在XML Schema中创建一个由一系列可选选项组成的复杂类型是微不足道的.一个foo元素可以有一个bar或baz子,然后是baz或bat子,然后是foo,bar或bat child.这使得规则可以确定这两个元素都是有效的:

<foo>
   <baz/>
   <baz/>
   <bar/>
</foo>

<foo>
   <foo>
      <bar/>
   </foo>
</foo>

同时,该规则在确定如何获取数据项元组并从中创建foo元素时几乎没有任何帮助.

通常,当有人问这个问题时,他们会查看他们正在使用的一个或两个模式,这些模式定义了一个相对简单的文档结构.看起来很直观,应该很容易将这些模式用作映射过程的输入.它可能是.什么不容易,甚至可能是一个映射过程,可以将任何模式作为输入.

在我的项目中,我所做的是简化问题.我已经构建了使用CSV和XML并支持模式验证的程序,但在这些程序中,模式是输出.我已经定义了一个简单的XML元数据格式,例如:

<item name="foo" type="string" size="10" allowNulls="true" .../>
<item name="bar" type="date" allowNulls="false" .../>

然后我可以使用该元数据来控制CSV输入的XML生成,我也可以使用它来生成我的程序生成的XML将符合的模式.如果我更改元数据,我的XML和架构会相应更改.

当然,如果模式真的是您的过程的输入(例如,它们是由第三方提供),这甚至不会开始帮助您.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。