如何在没有命名空间的情况下进行封送处理?
我有一个相当大的重复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块?