我正在编写一个工具来将 CSV 格式的数据转换为 XML。用户将指定解析方法,即:输出的 XSD,CSV 中的哪个字段进入结果 XML 的哪个字段。
(非常简化的用例)示例:
CSV
Ciccio;Pippo;Pappo
1;2;3
XSD
(more stuff...)
<xs:element name="onetwo">
<xs:element name="three">
<xs:element name="four">
用户给出规则
Ciccio -> onetwo
Pippo -> three
Pappo -> four
我已经使用数据集在 C# 中实现了它,我如何在 Java 中实现它?我知道有 DOM、JAXB 等,但似乎 XSD 仅用于验证以其他方式创建的 XML。我错了吗?
编辑: 一切都需要在运行时。我不知道我会收到什么样的 XSD,所以我不能实例化不存在的对象,也不能用数据填充它们。所以我猜 xjc 不是一个选项。
最佳答案
由于您的输出 XML
文件有 XSD
,因此创建此 XML
的最佳方法是使用 Java Architecture for XML绑定(bind) (JAXB)。您可能需要引用:"Using JAXB"教程,让您大致了解如何使用它来满足您的要求。
基本思路如下:
- 从 XML 模式生成 JAXB Java 类,即您拥有的
XSD
- 使用模式派生的 JAXB 类在 Java 应用程序中解码和编码 XML 内容
- 使用模式派生的 JAXB 类从头开始创建 Java 内容树
- 将数据解码到输出
XML
文件。
Here's another tutorial您可能会发现有用的信息。
关于Java:根据用户定义的XSD编写XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12230019/