>I have folded the function of your patch into my sandbox, but I wonder >if you could provide the rationale (e.g. what bug did it fix?). There was no way to construct XML for the headers by hand. Also in the body you had to use RPCElement to create nodes. As well as a fix for serialization of child elements.
I made some changes, which you may like to comment on: >1. I re-introduced SOAPHeader.outputImpl as the build failed without it. It looks like you did not add the change to output() and outputImpl() in MessageElement. They contained proper code for serializing values, as well a fix for serializing child elements. >2. In MessageElement, I moved the processing for the case when typeQName >is null from getObjectValue to getType as it seemed more appropriate >there. Sounds good. >3. I made setObjectValue protected as we don't want to encourage the >setting of the value by arbitrary classes. I was thinking of it, as a required public function. There is no other way to construct simple XML for a Header/Body element. >4. I deleted your code below from getValueAsType as this method really >shouldn't have that kind of side-effect. For example, it would set the >type to any type passed in, valid or invalid. It would do so only if no type was already defined. But that is a feature with limited use. And I guess could get some people in trouble.