我有一个相当大的重复XML来使用JAXB创建.将整个对象存储在内存中然后进行编组会占用太多内存.基本上,我的XML看起来像这样:
<Store>
<item />
<item />
<item />
.....
</Store>
Run Code Online (Sandbox Code Playgroud)
目前我对该问题的解决方案是将根标签"硬编码"到输出流,并逐个编组每个重复元素:
aOutputStream.write("<?xml version="1.0"?>")
aOutputStream.write("<Store>")
foreach items as item
aMarshaller.marshall(item, aOutputStream)
end
aOutputStream.write("</Store>")
aOutputStream.close()
Run Code Online (Sandbox Code Playgroud)
不知何故,JAXB生成这样的XML
<Store xmlns="http://stackoverflow.com">
<item xmlns="http://stackoverflow.com"/>
<item xmlns="http://stackoverflow.com"/>
<item xmlns="http://stackoverflow.com"/>
.....
</Store>
Run Code Online (Sandbox Code Playgroud)
虽然这是一个有效的XML,但它看起来很难看,所以我想知道有没有办法告诉编组人员不要为项目元素添加命名空间?或者是否有更好的方法使用JAXB按块序列化为XML块?