Re: SOAP 1.2 RPC encoding issue?

On Monday, August 12, 2002, at 03:22 PM, Robert van Engelen wrote:
>
> Now suppose that element x is multi-ref with elements a and b. The 
> SOAP 1.2
> encoding will be:
>
> <env:Envelope ...>
>  <env:Body ...>
>   <ns:call>
>    <param>
>     <struct>
>      <x id="id1">...</x>
>      <a href="#id1"/>
>      <b href="#id1"/>
>     </struct>
>    </param>
>   </ns:call>
>  </env:Body>
> </env:Envelope>
>
Not quite, in 1.2 the href element is renamed to ref and its type 
is IDREF rather than anyURI so you would omit the '#' characters in 
the references.

> With SOAP
> 1.1, multi-referenced objects are referenced with forward 
> pointers.  Hence,
> buffering is not required and sufficient type information can be 
> collected
> from the referring nodes to determine the contents of the 
> multi-referenced
> object BEFORE the multi-referenced object is parsed.  For example:
>
I don't believe that SOAP 1.1 mandated forward-only references, in 
this respect SOAP 1.2 is no different.

The way around this is define a subset of the current encoding that 
only uses forward (or backward if desired) references and use the 
encodingStyle attribute to label the encoding used. This is fine 
for closed systems, where you control both ends, but won't work out 
in the wild where other (the existing SOAP 1.1 or 1.2) 
encodingStyles may be used.

Regards,
Marc.

--
Marc Hadley <marc.hadley@sun.com>
XML Technology Center, Sun Microsystems.

Received on Monday, 12 August 2002 15:53:44 UTC