看起来这应该是相当明显的,但我找不到任何关于如何简单地(取消)编组 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>
感觉我应该能够做这样的事情(我正在使用 Scala 的 JAXB):
@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
不应该是子元素——它只是父节点的值。
这是一个常见的用例:我错过了什么?为了完整起见,我使用的是 Scala 的 JAXB (MOXy)。