In Document style, the child element of the SOAP Body has the QName of the element specified in the message part.
In RPC style, the child element of the SOAP Body has a local name that is the same as the operation name. The namespace comes from the namespace attribute in the <wsdlsoap:body> definition.
In both cases you should use the QName of the child element of the SOAP Body to dispatch the request.
Anne
On 1/9/06, Eran Chinthaka <[EMAIL PROTECTED]> wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hi Anne,
First, please forgive me for jumping in to some other thread and
asking this question. But since you have provided some useful info abt
WSDL Document and RPC styles, thought of asking my q here itself.
This is important for Axis2 SOAPBodyBasedDispatcher.
You have mentioned that in RPC style, "the SOAP body contains a
dynamically constructed structure comprising a *root element with a
local name that comes from the operation name*" . If I understood
correct, is it correct to assume that the messages coming to this
service in RPC styles, SHOULD contain the qname of the operation as
the body first child name.
I can remember some one pointed me saying that the body first child
name can also be the name of message element as well of that operation.
What do you think ?
- -- Chinthaka-----BEGIN PGP SIGNATURE-----
Anne Thomas Manes wrote:
> WSDL defines two styles:
>
> - Document: It means that the SOAP body contains a document
> comprising a single root element with any number of child
elements.
> The WSDL message definition contains at most one body part, and
> that part must reference an element definition in the
<types>
> section. Because the element definition must always be defined
by a
> schema, all document style services must use="literal". From a
WSDL
> perspective, this is the default style. If your WSDL binding
> doesn't specify a style, it means it is document style. - RPC: It
> means that the SOAP body contains a dynamically constructed
> structure comprising a root element with a local name that comes
> from the operation name, and a set of child elements that
> represents the operation/method parameters. The WSDL message
> definition contains one body part for each parameter, and each
part
> must reference a type definition. The local names of the child
> elements come from the names specified in the message parts. As I
> said, the structure is dynamically constructed, and it can be
> constructed in two ways. Either it can be constructed literally
> according to the defined parameter types (use="literal") or
> according to the SOAP encoded data model (use="encoded"). >From an
> Axis perspective, the default style is rpc/encoded. If you
generate
> the service from code and don't specify a style, Axis will
generate
> rpc/encoded.
>
> Unfortunately, Axis overloads the term "style" in the WSDD. WSDD
> defines four styles that correspond to three different service
> aspects: the WSDL type (rpc vs document), the provider type
> (java:RPC versus java:MSG), and the programming type (parameter
vs
> object vs DOM inputs):
>
> - RPC: Axis generates an rpc/encoded (by default) or rpc/literal
> (if use="literal" is also specified) service that uses the
java:RPC
> provider and supports a parameter programming model. - WRAPPED:
> Axis generates a document/literal service that conforms to the
> wrapped convention. It uses the java:RPC provider and supports a
> parameter programming model. (From the programmed perspective,
this
> is basically equivalent to RPC style.) - DOCUMENT: Axis
generated a
> document/literal service that uses the java:RPC provider and
> supports an object programming model. (From the programming
> perspective, this is very similar to RPC style, but you must
bundle
> your parameters into a single object.) - MESSAGE: Axis generates
a
> document/literal service that uses the java:MSG provider and
> supports a DOM programming model.
>
> Anne
>
> On 1/8/06, Dink <[EMAIL PROTECTED]> wrote:
>
>> Hi Dies,
>>
>> I have noticed your answer does not include the "Message"
style
>> and the most confusing thing is about it. I can not realize
what
>> the message style means since it is not defined in WSDL spec.
>> Can you point me some directions or any document? Besides, I
have
>> found the axis user guide define the service provider can be
>> either RPC or MSG. However, there is no clear definition of
RPC
>> and MSG in the axis user guide. Do the MSG mean the service
style
>> is "Message" described above? Is there any relationship
between
>> "service provider" and "use/style"?
>>
>> Thanks for your reply, Dink Lo
>>
>> Dies wrote:
>>
>>> Hello Dink,
>>>
>>> The JAX-RPC 1.1 spec describes the "wrapped" style
briefly. It
>>> is a variation of Document/literal, and is the
recommended
>>> style/use to use.
>>>
>>> With Axis, you have: Document/literal(wrapped): -s
WRAPPED -y
>>> literal Document/literal: -s DOCUMENT -y literal
RPC/literal:
>>> -s RPC -y literal RPC/encoded: -s RPC -y encoded
>>>
>>> I have never seen Document/encoded, maybe Axis doesn't
even
>>> support it.
>>>
>>> #In case of Document/literal(wrapped), the WSDL says
>>> style="document", but SOAP engines use some criteria to
>>> recognize that they are "wrapped". The WSDD says
"wrapped" if
>>> it recognized a Document/literal port as being
>>> Document/literal(wrapped).
>>>
>>> Regards, Dies
>>
>>
>
Version: GnuPG v1.4.2 (MingW32)
iD8DBQFDwpSSjON2uBzUhh8RAtDsAJ94Losqva/5HNKMpf8cI0sqronCZwCgmItp
SgyetrNiRrqCCFbP0zHyOVg=
=ZnxE
-----END PGP SIGNATURE-----
