【问题标题】:Problems with addind xmlns namespace with SOAP and Java带有 SOAP 和 Java 的 addind xmlns 命名空间的问题
【发布时间】:2013-11-24 19:01:39
【问题描述】:

我必须得到一个像这样的 SOAP 部件:

<PutMake xmlns="urn:PutMake">
    <x1/>
    <x2/>
    ....
</PutMake>

所以我用这段代码来做:

SOAPElement putMakeElement = soapBody.addChildElement(new QName("PutMake"));
putMakeElement.addNamespaceDeclaration("", "urn:PutMake");
// then adding child elements...

但问题是我得到了这样的 SOAP:

<PutMake xmlns="">
    <x1 xmlns="urn:PutMake"/>
    <x2 xmlns="urn:PutMake"/>
    ....
</PutMake>

我需要的 PutMake 的“xmlns”参数为空,但子元素的参数设置正确,而它们根本不应该具有该属性。

我也试过用 addAttribute 代替 addNamespaceDeclaration,但是输出是一样的。

为什么会这样?..

【问题讨论】:

    标签: java soap namespaces attributes xml-namespaces


    【解决方案1】:

    问题是new QName("PutMake") 给你一个QName,它的命名空间URI 是空的。您需要使用 new QName("urn:PutMake", "PutMake", "") 来获取带有您需要的命名空间 URI 的 QName。

    【讨论】:

    • 哦!! :))) 非常感谢!
    猜你喜欢
    • 2013-10-26
    • 2012-07-06
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多