有没有办法将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”上定义条件路径。我知道这只能与适配器结合使用,否则定义不会是双向的。 知道如何实现这一点吗?
答案 0 :(得分: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日开始)来试用feature:
了解更多信息
我还将尝试整合一种与已发布的EclipseLink JAXB (MOXy)版本兼容的方法。