有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如何在java中为Soap元素添加正确的属性

我想向soap元素添加属性,如

<SdcPDU xmlns="urn:sdcf:sdc:xsd:faa.2.0">
<Revision>2.0.2</Revision>
</SdcPDU>

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();

但输出消息看起来像

<SdcPDU xmlns="">
   <Revision xmlns="urn:sdcf:sdc:xsd:faa.2.0">2.0.2</Revision>
</SdcPDU>

谁能帮帮我


共 (1) 个答案

  1. # 1 楼答案

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

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

    答复:

    <SOAP-ENV:Body>
      <SdcPDU xmlns="urn:sdcf:sdc:xsd:faa.2.0">
          <Revision>2.0.2</Revision>
      </SdcPDU>
    </SOAP-ENV:Body>