Java преобразует объекты в XML с помощью javax.xml.bind.annotations

#java #xml #jaxb

#java #xml #jaxb

Вопрос:

Если у меня есть объект, содержащий несколько полей, представляющих собой списки других объектов, и я хочу сгенерировать XML для представления этого объекта, я получаю что-то вроде этого

 <top level object>
  <object1 />
  <object1 />
  <object1 /> 
  <object2 />
  <object2 />
  <object3 />
</top level object>
  

и я хочу сгенерировать что-то вроде этого:

 <top level object>
  <object1 list>
    <object1 />
    <object1 />
    <object1 /> 
  </object1 list>
  <object2 list>
    <object2 />
    <object2 />
  </object2 list>
  <object3 />
</top level object>
  

Возможно ли это путем изменения моих аннотаций? Прямо сейчас у меня есть мой объект класса верхнего уровня, помеченный

  @XmlRootElement()
  

и каждый из методов получения Object1, Object2 … etc (который возвращает список < Object#> ) имеет

 @XmlElement()
  

аннотация.

Надеюсь, есть способ изменить мой вывод, изменив аннотации, потому что мне кажется глупым создавать объект «Object1List» для простого хранения средства получения для других списков, чтобы все работало так, как я представляю в своей голове

Спасибо!

Ответ №1:

Взгляните на XmlElementWrapper на java.net или в Java 6 API. Я думаю, что это именно то, что вам нужно.

Комментарии:

1. Именно так и было. Спасибо! Я попытался найти список аннотаций hte, и, думаю, я пропустил это или, по крайней мере, пропустил, как его использовать

2. @Дерек. Это происходит постоянно. Я думаю, что большая ценность StackOverflow заключается в том, что он дает вам доступ к тем мелким деталям, которые застряли в головах других людей 😉