2011-03-10 4 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> 

I 클래스 사용자에 (때문에) XmlAdapter 및 클래스 고객에게 다른 (때문에) XmlAdapter와 두 번째로 첫 번째 링크를지도하고 싶습니다. 나는 EclipseLink JAXB (MOXy)에서 @XmlPath를 사용해 보았습니다. 그러나 "rel"조건을 가진 경로를 정의 할 수 없으므로 많은 실험 결과를 얻지 못했습니다. 이 정의는 양방향이 아니기 때문에 어댑터와 함께 사용해야 만 이해할 수 있습니다. 그 아이디어를 어떻게 실현할 수 있습니까?

답변

1

MOXy@XmlPath에 확장 기능을 추가하여이 사용 사례를보다 쉽게 ​​매핑 할 수 있도록했습니다.

  • :

    @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 2.3에서 다음을 수행 할 수있을 것입니다 자세한 내용은 http://www.eclipse.org/eclipselink/downloads/nightly.php

나는 또한 함께 EclipseLink JAXB (MOXy)의 출시 버전과 호환되는 방법을 넣어하려고합니다.

+0

쿨! 이것 좀보세요. – MyMacAndMe

+0

@MyMacAndMe -이 기능은 이제 EclipseLink 2.3.0 스트림에서 사용할 수 있습니다. 내 대답을 세부 정보로 업데이트했습니다. –

관련 문제