在向SOAPElement中添加新节点时,我获得了额外的,不需要的属性xmlns =""。 我该如何解决?
...
SOAPFactory factory = SOAPFactory.newInstance();
SOAPElement securityElem = factory.createElement("Security", null, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
SOAPElement tokenElem = factory.createElement("UsernameToken");
...
securityElem.addChildElement(tokenElem);
结果:
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken xmlns=""/> </Security>
但我需要这个:
<Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<UsernameToken/> </Security>
答案 0 :(得分:0)
如果希望元素与其父元素位于同一名称空间中,则必须通过向createElement()调用提供URI,在该名称空间中显式创建它。如果您创建了无命名空间元素(就像您所做的那样),那么序列化程序会插入命名空间未声明xmlns=""
以指示该元素与其父元素不在同一名称空间中。