2011-12-27 2 views
2

これはかなり明白なはずですが、JAXBを使って属性を持つXML要素を単純に(un)マーシャリングする方法については何も見つかりません。言い換えれば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定義:idはサブ要素であってはならないので、明らかに

@XmlAccessorType(XmlAccessType.FIELD) 
class XLink { 

    @XmlAttribute 
    @BeanProperty 
    var href: String = _ 

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

しかし、これは動作しませんが - それは単に親ノードの値です。

これはよくあるケースです。私は何が欠けていますか?完全性のために、私はScalaのJAXB(MOXy)を使用しています。

答えて

1

私はあなたがほしいと思うと思う@XmlValue

詳細はhereを参照してください。

+0

大きな感謝ジェームズ - これは素晴らしい作品です。テストに遅れて申し訳ありません! –