#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