XMLStreamWriter.writeStartElement(prefix,localName,namespaceURI)
(doc link)
namespaceURI参数不为null,但无法将前缀绑定到namespaceURI:
writeStartElement("manifest","manifest","urn:oasis:names:tc:opendocument:xmlns:manifest:1.0")
结果文件:
<manifest:manifest>
但它应该是:
<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0">
答案 0 :(得分:1)
在用于构建流编写器的XMLOutputFactory上将javax.xml.stream.isRepairingNamespaces属性设置为true。默认情况下,它已关闭。
在XMLStreamWriter中编写writeStartElement()的javadoc:
抛出: XMLStreamException - 如果名称空间URI尚未绑定到前缀且javax.xml.stream.isRepairingNamespaces尚未设置为true
(由于某种原因,官方javadocs没有显示例外的详细文本,但是我本地下载的那些文件)
或者你需要显式调用setPrefix()来首先注册命名空间。
答案 1 :(得分:0)
我相信你需要在writeStartElement之前设置setPrefix。我不认为你需要sRepairingNamespaces - 但我不确定。