Как мне распаковать / приписать элементы в JAXB? - PullRequest
2 голосов
/ 27 декабря 2011

Кажется, что это должно быть довольно очевидно, но я не могу найти ничего о том, как просто (не) маршалировать элементы XML, которые также имеют атрибуты, используя JAXB.

Другими словами, я понимаю, какиспользовать аннотации JAXB для работы с:

<element>foo</element>

И я понимаю, как использовать JAXB с:

<element attribute1="bar" attribute2="foo" />

Но я не могу понять, как подойти к чему-то вроде:

<id_address href="/addresses/18">18></id_address_delivery>
<id_cart href="/carts/111">111</id_cart>
<id_currency href="/currencies/13">13></id_currency>

Такое чувство, что я должен быть в состоянии сделать что-то вроде этого (я использую JAXB из Scala):

@XmlElement
@BeanProperty
var idAddress: XLink = _

@XmlElement
@BeanProperty
var idCart: XLink = _

@XmlElement
@BeanProperty
var idCurrency: XLink = _

А затем определить XLink как:

@XmlAccessorType(XmlAccessType.FIELD)
class XLink {

  @XmlAttribute
  @BeanProperty
  var href: String = _

  @Xml???
  @BeanProperty // ID is the container
  var id: Long = _
}

Но, очевидно, это не работает, потому что id не должен быть подэлементом - это просто значение родительского узла.

Это такой распространенный случай использования: что такоеЯ скучаю?Для полноты я использую JAXB (MOXy) из Scala.

1 Ответ

1 голос
/ 05 января 2012

Я думаю, вы хотите @XmlValue.

См. здесь для получения дополнительной информации.

...