2015-12-12 75 views
0

我目前正在嘗試將xml get response解組爲一個錯綜複雜的java對象。該java對象有其他類作爲字段,所以它非常深入。現在,我正在使用JaxbMarshaller2來完成這項工作。到目前爲止,一切進展順利,但現在我有一個問題:@XMLRootElement元素或數組名稱

基本上XML流中的一個標記被稱爲「圖像」,幷包含一個單獨的圖像項目數組,每個圖像項目包含在「項目」標籤。

<images> 
    <item> 
     <name></name> 
    </item> 
    <item> 
     <name></name> 
    </item> 
</images> 

現在,在我的根Java類中,我有一個名爲圖像屬性,這是(我做了一個自定義類的這些項目。)這些圖像的項目清單

@XmlElement(name = "images") 
private List<ProductImage> images; 

好,現在在ProductImage類中,類名稱上方的XML根元素是@XmlRootElement(name="images")還是@XmlRootElement(name="item")

感謝您的回覆。

回答

0

@XmlRootElement註釋僅用於xml文件的根元素。每位父母總是定義其子女的標籤名稱。但由於根元素沒有父項,因此需要額外的註釋來定義其名稱(即@XmlRootElement)。

選項1:

假設<images>節點是XML文件的根節點。 創建一個類ProductImageCollection其中有@XmlRootElement(name="images")註釋。

這個類裏面應該有一個List<ProductImage>它有一個註釋@XmlElement(name="image")

選項2:

假設<images>節點是一個更大的XML結構,已經有正確的註釋部分。

然後你不需要任何額外的@XmlRootElement註釋。您可以直接用@XmlElementWrapper(name="images")註釋您的清單。