Hi!
Here are some quick attempts at answers, for the time being:
1. With Document style services, the contents of the SOAP body is a custom XML fragment that can be validated.
JAX-WS, using the JAXB XML schema compiler, generates JAXB bean classes aiding in binding XML data to a tree of Java objects. In this case, the tree representing a request and a response is just one single object.
When using RPC, no such JAXB classes are needed, since you only use simple type (
string) parameters and return data in your methods.
In the case of RPC, the root of the XML element in the SOAP body typically is an element with the same name as the web service operation (method) invoked. This is not described in any XML schema, but is a convention for RPC.
2. Strictly speaking, the JAXB bean classes need not to be created, since SOAP messages can be assembled using, for instance SAAJ.
They may be created at runtime.
3. This is the part which I want to investigate a little more.
Basically, wsgen and wsimport creates artifacts for server respective client side. The JAXB bean classes are identical on both sides.
Best wishes!