Our partner is expecting something like this: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body> <RateRequest xmlns="http://www.whatever.org/" TimeStamp="2004-05-10T13:30:33.877Z"><POS><Source><UniqueId Type="IDNUM" Id="12345"/></Source></POS></RateRequest> </soapenv:Body></soapenv:Envelope> When I use axis I do the following: Call call = (Call) service.createCall(); call.setTargetEndpointAddress(new java.net.URL("http://www.mytestserver.com/servlet/RequestTest")); RPCElement element=new RPCElement("RateRequest"); element.setNamespaceURI("http://www.whatever.org/"); org.apache.axis.message.Text textElement=new Text(xmlFromDom4j); textElement.setParentElement(element); String ret = (String) call.invoke(element); The 'xmlFromDom4j' I have is not utilized at all...I expected it to be a child of the request node. What am I doing wrong?