如何在java中将属性添加到Soap元素中

shm*_*hms 3 java soap

我想将属性添加到soap元素中

<SdcPDU xmlns="urn:sdcf:sdc:xsd:faa.2.0">
<Revision>2.0.2</Revision>
</SdcPDU>
Run Code Online (Sandbox Code Playgroud)

java代码

MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage(); 
...
SOAPElement sdcPDU = soapBody.addChildElement("SdcPDU");
Name sdcPDUPduName = envelope.createName("xmlns");
sdcPDU.addAttribute(sdcPDUPduName, "urn:sdcf:sdc:xsd:faa.2.0");
SOAPElement revision = sdcPDU.addChildElement("Revision");
revision.addTextNode(2.0.2);
...
...
soapMessage.saveChanges();
Run Code Online (Sandbox Code Playgroud)

但输出消息看起来像

<SdcPDU xmlns="">
   <Revision xmlns="urn:sdcf:sdc:xsd:faa.2.0">2.0.2</Revision>
</SdcPDU>
Run Code Online (Sandbox Code Playgroud)

谁能帮我!

Ren*_*ith 5

以下代码应该会产生预期的结果.

SOAPElement sdcPDU = soapBody.addChildElement("SdcPDU","","urn:sdcf:sdc:xsd:faa.2.0");
    SOAPElement revision = sdcPDU.addChildElement("Revision");
    revision.addTextNode("2.0.2");
Run Code Online (Sandbox Code Playgroud)

响应:

<SOAP-ENV:Body>
  <SdcPDU xmlns="urn:sdcf:sdc:xsd:faa.2.0">
      <Revision>2.0.2</Revision>
  </SdcPDU>
</SOAP-ENV:Body>
Run Code Online (Sandbox Code Playgroud)