2011-12-27 94 views
2

看來這應該是相當明顯的,但我找不到任何關於如何簡單地(un)編組也具有使用JAXB的屬性的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從斯卡拉):

@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)。

回答

1

我想你想要@XmlValue

有關更多信息,請參見here

+0

非常感謝詹姆斯 - 這個作品很棒。對不起,在測試它的延遲! – 2012-01-13 21:21:23