2012-02-14 62 views
3

我已將jaxb庫更新至2.0版。 我正在使用以下jar包,jaxb-api-2.0.jar和jaxb-imp-2.0.jar。 現在的問題是,它沒有使用@XmlRootElement(name =「something」)。 但在前一個庫的幫助下,xml在生成的xml中使用了定義的名稱「something」。現在它採用駱駝大小寫的類名而不是name屬性中定義的「something」。這是最新的jaxb庫的錯誤嗎?請幫忙!jaxb版本2.0不使用xmlrootelement中的name屬性

回答

1

下面是一個可能有用的例子。 @XmlRootElement註釋將控制XML文檔的根元素的名稱。如果要控制內部元素的名稱,則可以使用@XmlElement註釋。

SomeObject

package forum9272675; 

import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement(name="something") 
public class SomeObject { 

    private SomethingElse somethingElse; 

    @XmlElement(name="something-else") 
    public SomethingElse getSomethingElse() { 
     return somethingElse; 
    } 

    public void setSomethingElse(SomethingElse somethingElse) { 
     this.somethingElse = somethingElse; 
    } 

} 

SomethingElse

package forum9272675; 

public class SomethingElse { 

} 

輸出

<?xml version="1.0" encoding="UTF-8"?> 
<something> 
    <something-else/> 
</something> 
+1

謝謝,爲答案...是的,我沒有注意到,我的根類實際上調用其他類和根元素名稱顯示正常,但問題是在被調用的類根元素...嘗試你的解。 – 2012-02-16 06:19:57

0

在我的孩子上課我ü唱@XmlRootElement(name =「some-thing」)。除此之外,當我使用@XmlType(name =「some-thing」)時,我的問題得到了解決!