You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by "Viens, Steve" <St...@FMR.COM> on 2003/06/18 16:18:56 UTC

Distinction between rpc/literal and wrapped doc/literal

A colleague raised the question "What's the difference between rpc/literal
and wrapped doc/literal?" ... and I'm having some difficulty coming up with
an answer. Are these the same?

Steve

RE: Distinction between rpc/literal and wrapped doc/literal

Posted by Jim Murphy <jm...@mindreef.com>.
Nope, they are different but don't feel too bad for not being able to
succinctly describe the difference - I'm not sure how clear this will be
but here goes...  :-)

BTW, Yasser Shohoud has an article on MSDN that describes RPC/Literal in
a little detail[1].  Also, Anne has gone over this before on this
list[2].

Here are the highlights:

1.  Understand the differences between Document vs. RPC semantics as
defined by WSDL.  RPC makes use of wsdl:Operation and wsdl:Message/Part
in addition to XML Schema types to describe the wire format while
Document generally does not.  Instead Document lets the Message/Parts
degenerate into references to XML Schema types.  RPC includes plenty of
details concerning the naming and namespace rules for the Header and
Body children.  The names are gleaned from the Operation and
Message/Part/@name with additional semantics layered on out of band in
possibly spec compliant but potentially interoperable ways.

2.  Realize that Document and RPC "leak" some details of how the service
is implemented.  In the document case one assumes nothing - the service
eats XML and spews XML - it may be bound to a method and be supported by
an XML<->object type mapping but it is very likely not.  In the RPC case
the service is assumed to map to a function call - at least in an
abstract sense where in, out and in/out parameters have some meaning.  

3.  Wrapped is an attempt to step away from the "old" way of doing SOAP
- RPC/Encoded and towards a "vanilla XML" approach where the interface
contract and wire details are described completely by XML Schema not by
some hodgepodge of SOAP/WSDL/Schema.  Wrapped is a convention describing
how to describe an Operation so the doc/literal message can be mapped to
a method call - confused yet?  There is a SOAPBuilders discussion on
this from last year[3] That may help you too.

4.  Axis and ASP.NET have similar but somewhat different approaches.



Good Luck,
Jim Murphy 
Mindreef, Inc.
http://www.mindreef.com/


[1] -
http://msdn.microsoft.com/webservices/understanding/webservicebasics/def
ault.aspx?pull=/library/en-us/dnwebsrv/html/rpc_literal.asp#rpc_literal_
topic4?_r=1

[2] - http://marc.theaimsgroup.com/?l=axis-user&m=103800125103556&w=2

[3] - http://groups.yahoo.com/group/soapbuilders/message/7248


-----Original Message-----
From: Viens, Steve [mailto:Stephen.Viens@FMR.COM] 
Sent: Wednesday, June 18, 2003 10:19 AM
To: axis-user@ws.apache.org
Subject: Distinction between rpc/literal and wrapped doc/literal


A colleague raised the question "What's the difference between
rpc/literal and wrapped doc/literal?" ... and I'm having some difficulty
coming up with an answer. Are these the same?
Steve