Как назвать классы JAXB?

1
@XmlRootElement
public class MyRoot {
    private List<SubRootDTO> subs;
}

public class SubRootDTO {

}

Как я могу SubRootDTO явное имя JAXB для класса SubRootDTO?

  • 0
    Смотрите аннотацию XmlElement .
Теги:
jaxb

3 ответа

1
Лучший ответ

Есть несколько вариантов:

  1. Аннотируйте SubRootDto с помощью @XmlRootElement а затем используйте @XmlElementRef для всех отображаемых полей/свойств, которые ссылаются на него.
  2. Аннотировать SubRootDto свойства с @XmlElement.
0
@XmlRootElement(name = "subRoot")
public class SubRootDTO {
}
  • 0
    Хорошо, я думал, @XmlRootElement аннотация @XmlRootElement будет применяться только к самому внешнему классу?
  • 0
    Мы использовали это следующим образом, но я мог бы также предложить принятый ответ stackoverflow.com/questions/12256221/… @XmlElement (name = "xmlUsers")
0
@XmlRootElement
class MyRoot {
    private List<SubRootDTO> subs;

    ...

    @XmlElementRef(name = "CustomName")
    public List<SubRootDTO> getSubs(){
        return subs;
    }
}

class SubRootDTO {

}

В отличие от аннотации SubRootDTO с @XmlRootElement(name = "XYZ"), @XmlElementRef(name = "ABC") позволяет вам называть элемент по-разному для каждой ссылки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню