XML без корневого элемента в JAXB

#java #xml #jaxb #jax-rs #jaxb2

#java #xml #jaxb #jax-rs #jaxb2

Вопрос:

Мне было интересно, есть ли способ создать объект таким образом, чтобы список таких объектов не нуждался в корневом элементе. Например, если бы я хотел создать XML, подобный

 <Dogs>
  <Dog>A</Dog>
  <Dog>B</Dog>
  <Dog>C</Dog>
</Dogs>
  

У меня мог бы быть class Dogs который был бы корневым элементом и имел List<Dog> . Теперь предполагается, что я хочу избавиться от инкапсулирующего элемента <Dogs> . Чтобы список dog выглядел как

 <Dog>A</Dog>
<Dog>B</Dog>
<Dog>C</Dog>
  

как я должен создавать свои классы?

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

1. Я почти уверен, что это недопустимый XML. Или, если быть более точным, это допустимый фрагмент XML, но не допустимый XML- документ . Так что я не думаю, что JAX-RS позволит это, по крайней мере, без внесения множества странных изменений.

Ответ №1:

В XML это невозможно. Спецификация на http://www.w3.org/TR/xml/#NT-document ясно сказано, что документ имеет один корневой элемент.

Следовательно, ваш второй XML-подобный код является не XML-документом, а конкатенацией трех XML-документов. Но синтаксические анализаторы обычно не подготовлены к такого рода вводу.

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

1. Но я видел xml-файл без одного корневого элемента, инкапсулирующего все элементы. Пакет And golang анализирует это без проблем, но я хотел бы знать, как это сделать на java