子级未继承的命名空间声明(JAXB,SAX Parser,名称空间意识为false)

时间:2018-08-07 07:42:07

标签: java xml namespaces jaxb sax

我目前遇到一个问题,该问题可以使用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?应该不是根节点中定义的那样全局可用吗?

预先感谢

0 个答案:

没有答案