【问题标题】:XMLBeans - How to handle nearly identical legacy XSDs?XMLBeans - 如何处理几乎相同的遗留 XSD?
【发布时间】: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 我们也遇到了同样的问题,如果能找到合适的解决方案就好了。

标签: java xml xsd xmlbeans


【解决方案1】:

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

【讨论】:

  • 这看起来很麻烦,但我一直找不到更好的解决方案。
猜你喜欢
  • 1970-01-01
  • 2013-08-14
  • 2011-08-02
  • 1970-01-01
  • 2018-09-18
  • 1970-01-01
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
相关资源
最近更新 更多