Reputation: 79
I want to add attribute to soap element like
<SdcPDU xmlns="urn:sdcf:sdc:xsd:faa.2.0">
<Revision>2.0.2</Revision>
</SdcPDU>
java code
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();
but output message looks like
<SdcPDU xmlns="">
<Revision xmlns="urn:sdcf:sdc:xsd:faa.2.0">2.0.2</Revision>
</SdcPDU>
can anyone help me!
Upvotes: 3
Views: 11156
Reputation: 1154
Following code should yield you the expected result.
SOAPElement sdcPDU = soapBody.addChildElement("SdcPDU","","urn:sdcf:sdc:xsd:faa.2.0");
SOAPElement revision = sdcPDU.addChildElement("Revision");
revision.addTextNode("2.0.2");
Response:
<SOAP-ENV:Body> <SdcPDU xmlns="urn:sdcf:sdc:xsd:faa.2.0"> <Revision>2.0.2</Revision> </SdcPDU> </SOAP-ENV:Body>
Upvotes: 6