2011-08-02 51 views
1

我的一個哥們問我張貼了這個問題:JAXB不馬歇爾預計

編輯:他決定張貼在自己這裏的問題是:JAXB Unmarshalls XML Incorrectly我試圖刪除這個問題,但不能。我試圖編組一個java類,名爲MyContainer。這個課程擴展了我的另一個課程,名爲ContainerContainer有一個稱爲變量:protected List<ResourceReference<Component>> child

唯一變量MyContainer具有它是從Container繼承一個。然而,這個List,當我將孩子列爲XmlList時,不會與JAXB進行搜索。

它將作爲XmlElement編組,但這不是我希望顯示數據的方式。當它編組爲XmlElement時,它列出List中的屬性,但不是'heirarchially'它只是列出了兩個元素,就好像它們是類的屬性,而不屬於子列表。

如何讓Jaxb將List(它實例化爲ArrayList)正確?

編輯:下面是一個例子: 這就是我得到:

<MyContainer name="Container Name"> 
    <booleanVal>false</booleanVal> 
    <child id="Test Comp 1"/> 
    <child id="Test Comp 2"/> 
</and> 

這更是我想到:

<MyContainer name="Container Name"> 
    <booleanVal>false</booleanVal> 
    <child> /// This would be the class variable of the extended Class, Container 
     <ResourceRef id="Entry 1"> 
     <ResourceRef id="Entry 2"> 
    </child> 
</and> 

Admittly,我目前的結果很可能是從列表中容器被標記爲@XmlElement註解。但是,JAXB將不會收集任何東西。

+2

很難按照你的問題。你可以給你一個你得到的XML樣本和你想要的另一個XML樣本嗎? –

回答

4

@XmlElementWrapper註釋您的列表。請參閱javadoc

+0

'@ XmlElementWrapper'不會正確顯示數據,但是當JAXB轉到Demarshall該XML文件時,它不會正確地將元素插入到列表中。我錯過了什麼讓它識別包裝內列出的每個東西作爲列表中的一個元素? – compuguru

+0

我的朋友決定發佈他的問題。在這裏看到:http://stackoverflow.com/questions/6916790/jaxb-unmarshalls-xml-incorrectly。接受這個來關閉這個問題。 – compuguru