У меня есть довольно большой повторяющийся XML для создания с использованием JAXB. Сохраняя весь объект в памяти, тогда маршалинг занимает слишком много памяти. По сути, мой XML выглядит следующим образом:
<Store>
<item />
<item />
<item />
.....
</Store>
В настоящее время мое решение проблемы состоит в том, чтобы "жестко закодировать" корневой тег в выходной поток и маршалировать каждый из повторяющихся элементов один за другим:
aOutputStream.write("<?xml version="1.0"?>")
aOutputStream.write("<Store>")
foreach items as item
aMarshaller.marshall(item, aOutputStream)
end
aOutputStream.write("</Store>")
aOutputStream.close()
Как-то JAXB генерирует такой XML
<Store xmlns="http://stackoverflow.com">
<item xmlns="http://stackoverflow.com"/>
<item xmlns="http://stackoverflow.com"/>
<item xmlns="http://stackoverflow.com"/>
.....
</Store>
Хотя это допустимый XML, но он просто выглядит уродливым, так что мне интересно, есть ли способ сказать маршаллеру не помещать пространство имен для элементов элемента? Или есть лучший способ использовать JAXB для сериализации XML-фрагмента куском?