reqEnv.declareNamespace("http://soapinterop.org/xsd", "s");
reqEnv.declareNamespace("http://soapinterop.org/", "m");
SOAPHeader header = omfactory.createSOAPHeader(reqEnv);
OMNamespace hns = reqEnv.declareNamespace("http://soapinterop.org/echoheader/", "hns"); //xmlns:m0="http://soapinterop.org/echoheader/
SOAPHeaderBlock block1 = header.addHeaderBlock("echoMeStringRequest", hns);
block1.addAttribute("xsi:type", "xsd:string", null);
block1.addChild(omfactory.createText("string"));
// header.addChild(headerChild);
header.addChild(block1);
SOAPHeaderBlock block2 = header.addHeaderBlock("echoMeStructRequest", hns);
block2.addAttribute("xsi:type", "s:SOAPStruct", null);
OMElement h2Val1 = omfactory.createOMElement("varString", null);
h2Val1.addAttribute("xsi:type", "xsd:string", null);
h2Val1.addChild(omfactory.createText("string"));
OMElement h2Val2 = omfactory.createOMElement("varInt", null);
h2Val2.addAttribute("xsi:type", "xsd:int", null);
h2Val2.addChild(omfactory.createText("150"));
OMElement h2Val3 = omfactory.createOMElement("varFloat", null);
h2Val3.addAttribute("xsi:type", "xsd:float", null);
h2Val3.addChild(omfactory.createText("456.321"));
block2.addChild(h2Val1);
block2.addChild(h2Val2);
block2.addChild(h2Val3);
OMElement operation = omfactory.createOMElement("echoStructArray", "http://soapinterop.org/", null);
SOAPBody body = omfactory.createSOAPBody(reqEnv);
body.addChild(operation);
operation.addAttribute("soapenv:encodingStyle", "http://schemas.xmlsoap.org/soap/encoding/", null);