0

我有以下重复出现的模式:我用一些参数调用一个黑匣子,并得到一个结果是List<Map<String, Object>>(或等效的)每个 Map 具有相同的 keySet。然后,我预计会生成表单的 XML

<list>
    <item key1='value1' ...>
        <keyX>valueX</keyX>
    </item>
</list>

列表和项目元素的名称以及某个键是否是项目的子元素或属性因任务而异。我想尽量减少将 Map 键手动连接到 XML。

我最初设想的方式是创建一个 XML 模板,该模板将描述映射键到元素/属性映射。然后我想这就是 XSD 的用途,所以我可以使用该格式来定义模板。但是我找不到从 XSD 生成 XML 的好解决方案。我查看了 JAXB,它对于我的场景来说似乎太重了:我不需要 Java 类 - 拥有域对象会很好,除非我从不对数据做任何事情。然后,我必须首先将我的数据映射到类,这对于仅将它们与编组器一起转储似乎是低效的事情。其次,我想保持更大的灵活性——如果数据格式(即每个 Map 中的 keySet)发生变化,我只需要修改模式而不需要重新生成源和重建。

感谢您阅读:)

4

1 回答 1

0

我记得大约一年前做过这样的事情。我所做的是编写 XSLT,它接受一些参数并用 JAXP 处理它以生成 XML。

如果您是 XSL 的新手,可能会有点棘手,但是周围有很多很好的文档。:)

于 2012-03-08T11:49:18.470 回答