> But, that does puzzle me.  According to what I've read, the 
> distinction is that, in document mode, the toolkits don't 
> interpret the messages for you, allowing you to provide your 
> own, hopefully more efficient, parsing of the document.  But 
> it is clear that Axis is converting the message into java 
> objects for me.

The distinction between RPC and Document is subtle. So subtle that you
can have the same on the wire representation for both RPC and Document
style (although the WSDL will differ). In fact when we moved from RPC to
Document pre 1.0 I did rewrite the WSDL so not to change the on the wire
representation (or at least tried to).

The difference comes in how the SOAP stack interprets the requests. In
Axis if we had RPC the stubs would be

SearchRetrieveResponse SearchRetrieveRequest(String version, String
query, int startRecord, int maximumRecords, ...);

As opposed to Document where you get

SearchRetrieveResponse SearchRetrieve(SearchRetrieveRequest body);

Where version, query etc. are properties of SearchRetrieveRequest.

Configuring the toolkit to treat SearchRetrieveRequest as just an XML
DOM rather than do internal parsing is left as an implementation detail
of the toolkit.

Literal versus Encoding is a more important distinction as that really
does affect the on the wire representation.