我目前遇到一个问题,该问题可以使用javax.xml.parsers.SaxParser整理XML文件,但我无法解决。
XML格式如下
<rootnode xmlns:ns0="testnamespace_ns0">
<subnode1/>
<subnode2/>
<subnode3>
<subnode3_1>
<subnode3_1_1>
<ns0:payload>
<ns0:payload_2>
<ns0:payload_3>...</ns0:payload_3>
<ns0:payload_4>...</ns0:payload_4>
<ns0:payload_5>
<ns0:payload_6>...</ns0:payload_6>
</ns0:payload_5>
</ns0:payload_2>
</ns0:payload>
</subnode3_1_1>
</subnode3_1>
</subnode3>
</rootnode>
在 subnode3 或 subnode3_1 或 subnode_3_1_1 上设置“ ns0:”将达到目的,并使有效负载使用ns0前缀。但是,如果ns0:不是上述所有节点的前缀,则不能从有效负载元素开始使用它。
由JAXB解析器解组将抛出JAXBException“前缀“ ns0”的命名空间未拒绝”
我不知道它是否相关,但是我发现,将我的SaxParser的名称空间意识设置为“ true”也可以解决此问题。
有人有什么线索,为什么不能从有效负载节点开始使用名称空间前缀ns0?应该不是根节点中定义的那样全局可用吗?
预先感谢