2013-10-08 67 views
0

我使用JAXB將我的Java模型序列化到ATOM。對於Object類型的title屬性(我不能將其更改爲String),它將添加名稱空間屬性。JAXB添加不需要的屬性?

<atom:title xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:type="xs:string"> 
myTitle 
</atom:title> 

這應該是:

<atom:title>myTitle</atom:title> 
+1

請顯示您的帶註釋的課程......如果您提供的全部內容是輸出,則很難確定發生了什麼。 – JayDM

回答

0

如果您不能title屬性更改爲String類型,那麼你可以使用@XmlElement批註指定屬性的類型(如遠作爲JAXB而言):

@XmlElement(namespace="http://www.w3.org/2001/XMLSchema", type=String.class) 
public Object getTitle() { 
    return title; 
} 
+0

感謝您的回覆。我不能那樣做,因爲'title'可以是'String'或'Title'對象。 – user86834

+0

你知道這些屬性來自哪裏嗎? – user86834

+0

@ user86834 - 正在使用'xsi:type'屬性來限定元素上設置的值。在你的示例文件中,很明顯你指定了'title'屬性和一個'String'實例。 'xmlns:xsi'和'xmlns:xs'屬性用於定義由'xsi:type =「xs:string」'引用的名稱空間。 –

相關問題