1

我必须得到一个像这样的 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,但输出是相同的。

为什么会变成这样?...

4

1 回答 1

1

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

于 2013-11-12T14:59:23.003 回答