Кажется, что это должно быть довольно очевидно, но я не могу найти ничего о том, как просто (не) маршалировать элементы 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.