2013-10-08 3 views
0

Я сериализую свою модель Java до ATOM, используя JAXB. Для свойства title, имеющего тип Object (я не могу изменить это на 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 "'. –

Смежные вопросы