XMLBeans - 如何处理几乎相同的传统XSD?

时间:2014-03-26 21:24:38

标签: java xml xsd xmlbeans

我正在使用XMLBeans从两个非常相似的XSD生成Java客户端代码。 XMLBeans生成的类分为两个并行包。然后,我从数据库中检索数据以与生成的类交互,以生成两个(同样,几乎相同的)XML输出文件。即使XSD大约95%相同,它们之间也没有确定的关系 - 没有继承或任何东西。不幸的是,这些传统的XSD已经使用多年了,我不允许修改它们。

我的问题是:尽管两个XML文件中的大多数数据和结构完全相同,但我无法弄清楚如何避免大量重复代码将数据转换为两个独立的XMLBeans集合生成的类。我可以在DAO和XML结构之间创建一组通用的业务对象。但是我仍然需要将每个对象映射到相应的生成的XML类型,这看起来非常繁琐且低效。

我不想修改生成的XMLBeans Java代码(例如,实现共享接口),我无法更改XSD。我已经看过像Adapter和Bridge这样的模式,但我认为他们不会让我在那里避免重复的代码/工作。是否有一个我缺少的优雅设计解决方案?

1 个答案:

答案 0 :(得分:1)

也许您可以使用XmlCursor将内容一般性地添加到类似节点,请参阅How to add a node to XML with XMLBeans XmlObject