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 Dittmann Werner <We...@icn.siemens.de> on 2002/06/21 15:12:06 UTC

Several SOAP body blocks - can Axis deal with it

Hi all,

according to the SOAP specs

<quote>
  The (SOAP Body) element MAY contain a set of SOAP body
  blocks, each being an immediate child element of the
  SOAP Body.  
</quote>
  
Axis (in RPC and/or doc/lit mode) processes (at least?)
one immediate child element. What happens if there are
more immediate child elements? Does Axis filters the
child elements and uses only those relevant for its 
processing? (Silently ignoring the other child elements?)

The other immediate child elements would be processed by 
e.g. a customized handler.

Some documentation available about this topic or some link
into the source where I can check?

Regards,
Werner

Werner Dittmann
Siemens ICM N PG ES AS TP 
mailto:Werner.Dittmann@icn.siemens.de
Tel: +49(0)89 722 42481/+49(0)172 85 85 245

Re: Several SOAP body blocks - can Axis deal with it

Posted by Andrew Vardeman <an...@iastate.edu>.
I believe Brian is correct about RPC, since the single immediate child of 
the SOAP Body has the name of the method to invoke.  Wouldn't make much 
sense to have another one.

As for doc/lit, yes, I presume Axis handles multiple immediate children of 
the SOAP Body just fine.  All of my doc/lit stuff has been with only one 
child, but when you're doing doc/lit with Axis, you can write a service 
with a method that takes a java.util.Vector of DOM Elements as input.

Andrew

At 03:01 PM 6/21/2002 +0100, you wrote:
>Dittmann Werner wrote:
>>Hi all,
>>according to the SOAP specs
>><quote>
>>   The (SOAP Body) element MAY contain a set of SOAP body
>>   blocks, each being an immediate child element of the
>>   SOAP Body.
>></quote>
>>
>>Axis (in RPC and/or doc/lit mode) processes (at least?)
>>one immediate child element. What happens if there are
>>more immediate child elements? Does Axis filters the
>>child elements and uses only those relevant for its processing? (Silently 
>>ignoring the other child elements?)
>
>Quoting the spec again, for RPC:
>The invocation is viewed as a SINGLE struct containing an accessor for 
>each [in] or [in/out] parameter. The struct is both named and typed 
>identically to the procedure or method name
>...
>The response is viewed as a SINGLE struct ...
>
>(my emphasis, this is from the 1.2 spec) - I read this as saying that, for 
>RPC, other body blocks are actually illegal (this isnt inconsistent with 
>your quote, since RPC is a restriction of SOAP)
>
>As for anything else - body blocks are implicitly mustUnderstand="1" so 
>they must be processed or rejected, never ignored.
>
>Disclaimer: I'm talking from the spec here, I've not tried this with axis.
>
>-Baz
>
>
>
>




Re: Several SOAP body blocks - can Axis deal with it

Posted by Brian Ewins <Br...@btinternet.com>.
Dittmann Werner wrote:
> Hi all,
> 
> according to the SOAP specs
> 
> <quote>
>   The (SOAP Body) element MAY contain a set of SOAP body
>   blocks, each being an immediate child element of the
>   SOAP Body.  
> </quote>
>   
> Axis (in RPC and/or doc/lit mode) processes (at least?)
> one immediate child element. What happens if there are
> more immediate child elements? Does Axis filters the
> child elements and uses only those relevant for its 
> processing? (Silently ignoring the other child elements?)
> 

Quoting the spec again, for RPC:
The invocation is viewed as a SINGLE struct containing an accessor for 
each [in] or [in/out] parameter. The struct is both named and typed 
identically to the procedure or method name
...
The response is viewed as a SINGLE struct ...

(my emphasis, this is from the 1.2 spec) - I read this as saying that, 
for RPC, other body blocks are actually illegal (this isnt inconsistent 
with your quote, since RPC is a restriction of SOAP)

As for anything else - body blocks are implicitly mustUnderstand="1" so 
they must be processed or rejected, never ignored.

Disclaimer: I'm talking from the spec here, I've not tried this with axis.

-Baz