jaxb версии 2.0 не использует атрибут имени в xmlrootelement - PullRequest
3 голосов
/ 14 февраля 2012

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

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

Ниже приведен пример, который может помочь.Аннотация @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>
0 голосов
/ 16 февраля 2012

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...