2012-02-14 2 views
3

Я обновил библиотеку jaxb до версии 2.0. Я использую следующие банки, jaxb-api-2.0.jar и jaxb-imp-2.0.jar. Теперь проблема заключается в том, что она не использует @XmlRootElement (name = "something"). Но с помощью предыдущей библиотеки xml использовал определенное имя «что-то» в сгенерированном xml. Сейчас он принимает имя класса в верблюжьем корпусе вместо «что-то», определенное в атрибуте name. Это ошибка последней библиотеки jaxb? Пожалуйста помоги!jaxb version 2.0 не использует атрибут name в xmlrootelement

ответ

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

Спасибо, за ответ ... Да, я не заметил, что мой класс root на самом деле вызывает другие классы, а в корневом элементе имя отображается отлично, но проблема в корневом элементе вызываемого класса ... Попытка вашего решение. –

0

В моем классе ребенка я U петь @XmlRootElement (name = "some-thing"). В дополнение к этому, когда я использую @XmlType (name = "some-thing"), моя проблема решена!

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