3

有没有办法将 JAXB XML 实体中的两个链接映射到不同的类?例子:

<restresource>
  <atom:link rel="http://myuri/rels/author" href="http://myuri/users/42" title="That's me"/>
  <atom:link rel="http://myuri/rels/customer" href="http://myuri/customers/4711" title="John Smith"/>
</restresource>

我想将带有 XMLAdapter 的第一个链接映射到 User 类,将带有不同 XMLAdapter 的第二个链接映射到 Customer 类。我尝试使用来自EclipseLink JAXB (MOXy)的 @XmlPath 来做到这一点。但是由于无法定义具有“rel”条件的路径,因此没有从大量实验中得到任何结果。我知道这只能与适配器结合使用,否则定义将不是双向的。知道如何实现吗?

4

1 回答 1

1

我们为MOXy@XmlPath添加了一个扩展,这将使这个用例更容易映射。在 EclipseLink 2.3 中,您将能够执行以下操作:

@XmlPath("atom:link[@rel='http://myuri/rels/author'])
@XmlJavaTypeAdapter(AuthorAdapter.class)
private Author author;

@XmlPath("atom:link[@rel='http://myuri/rels/customer'])
@XmlJavaTypeAdapter(CustomerAdapter.class)
private Customer customer;

您现在可以通过从以下位置下载 EclipseLink 2.3.0 夜间下载(从 3 月 22 日开始)之一来试用此功能:

了解更多信息

我还将尝试整合一种与已发布版本的EclipseLink JAXB (MOXy)兼容的方法。

于 2011-03-10T21:19:11.257 回答