【发布时间】:2014-03-28 20:24:18
【问题描述】:
我正在使用 XMLBeans 从两个非常相似的 XSD 生成 Java 客户端代码。 XMLBeans 生成的类进入两个并行包。然后我从数据库中检索数据以与生成的类进行交互以生成两个(同样,几乎相同的)XML 输出文件。尽管 XSD 大约 95% 相同,但它们之间没有明确的关系——没有继承或任何东西。不幸的是,这些旧版 XSD 已使用多年,我无权对其进行修改。
我的问题是:尽管两个 XML 文件之间的大部分数据和结构完全相同,但我无法弄清楚如何避免大量重复代码将数据倒入两组独立的 XMLBeans - 生成的类。我可以创建一组通用的业务对象以在 DAO 和 XML 结构之间移动。但我仍然必须将这些对象中的每一个都映射到相应生成的 XML 类型,这看起来非常乏味和低效。
我不想修改生成的 XMLBeans Java 代码(例如,实现共享接口),我无法更改 XSD。我已经研究过 Adapter 和 Bridge 之类的模式,但我认为它们在避免重复代码/工作方面无法让我到达那里。有没有我想念的优雅设计解决方案?
【问题讨论】:
-
很难确定哪些部分可以修改,哪些部分不能修改。一些代码会给出更好的主意。你试过 JAXB 吗?
-
+1 我们也遇到了同样的问题,如果能找到合适的解决方案就好了。