Есть ли способ отобразить две ссылки в XML-объекте JAXB на разные классы? - PullRequest
3 голосов
/ 10 марта 2011

Есть ли способ отобразить две ссылки в XML-объекте JAXB на разные классы? Пример:

<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. Я пытался сделать это с помощью @XmlPath из EclipseLink JAXB (MOXy) . Но из многих экспериментов не получил никакого результата, так как невозможно определить путь с условиями на «rel». Я понимаю, что это можно сделать только в сочетании с адаптером, поскольку в противном случае определение не будет двунаправленным. Есть идеи, как это реализовать?

1 Ответ

1 голос
/ 11 марта 2011

Мы добавили расширение для 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 (начиная с 22 марта).от:

Для получения дополнительной информации

Я также попытаюсь собрать подход, совместимый с выпущенными версиями EclipseLink JAXB (MOXy) .

...