我需要从Java对象中生成一些XML文档。这些对象是深度ORM映射对象,XML文档用于搜索索引(la Lucene)。我希望能够创建一个配置文件并为其提供一个Java对象,并让它吐出配置中指定的XML。理想情况下,配置将包括java端(可能是深层)的属性到XPath的映射或非常类似于XML端的映射。什么是从Java生成任意XML的好库?
JAXB不合适,因为它想要创建从对象数据到XML节点的一对一映射。我已经看过JIBX和XStream,但是他们都没有被设计来做我正在谈论的事情。
基本上我想要的是Dozer,但是它的目的是创建一个XML文档作为它的目标而不是另一个Java bean。从我迄今为止的研究看来,我将不得不自己写这篇文章。任何人都可以提供更好的选择?
编辑: 该解决方案不能预测修改源Java文件的能力。基于注释的系统对我的目的来说是完全无用的。应该可以像在推土机上一样为各个映射定义'译员'。
需要注意的是,我需要能够指定java中给定的输入字段可能会在XML输出中的多个不同位置输出,可能在某些情况下会被转换,而在其他情况下可能会被转换。
我已经考虑过做某种直接的Java到XML转换的对象,然后使用XSLT执行我的任务,但问题在于这些是具有双向连接的深层对象。将对象映射到XML将很难确定对象层次结构的深度,即使它可以跟踪哪些对象应该打折,因为它们已经被看到了。
JiBX应该对此好,你为什么不喜欢它? – skaffman 2010-01-11 23:35:06