2011-03-10 22 views
3

有没有办法将JAXB XML实体中的两个链接映射到不同的类? 实施例:有没有办法将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到类用户,第二个具有不同XMLAdapter类客户第一连杆。我试图用EclipseLink JAXB (MOXy)的@XmlPath来做到这一点。但是没有从大量实验中得到任何结果,因为无法用“rel”条件定义路径。我知道这只能与适配器结合使用,否则定义将不是双向的。 任何想法如何实现?

回答

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今天出http://www.eclipse.org/eclipselink/downloads/nightly.php

欲了解更多信息

我也将尝试放在一起的做法,是与EclipseLink JAXB (MOXy)发布的版本兼容。

+0

酷!期待检查这一点。 – MyMacAndMe 2011-03-11 09:37:22

+0

@MyMacAndMe - 此功能现在可在EclipseLink 2.3.0流中使用。我已经用细节更新了我的答案。 – 2011-03-22 13:53:19

相关问题