- From: Jacek Kopecky <jacek@idoox.com>
- Date: Thu, 20 Sep 2001 14:51:44 +0200 (CEST)
- To: Alan Kent <ajk@mds.rmit.edu.au>
- cc: SOAP <xml-dist-app@w3.org>
Alan,
I disagree that there are three states for array values.
In structures, omitting an accessor and having it with
xsi:nil="true" is equivalent. I see sparse arrays as exactly the
same for arrays where you cannot just omit an item to make it
nil.
This is also how we implement sparse arrays - putting NULLs
where the item is not present. We optionally generate sparse
arrays when the array that is being serialized contains NULLs.
You can easily represent a SOAP array of ints as C++ array of
pointers to ints so I don't see why nillable content adds
trouble. We have implemented it with no problems coming from
sparse array support.
Every discussion about nils and nothings seems to be endless,
though. 8-)
Jacek Kopecky
Idoox
http://www.idoox.com/
On Mon, 3 Sep 2001, Alan Kent wrote:
> I just finished typing up a carefully crafted question on soap arrays that
> took an hour to compose. Then lost it. <:-( Here is a cut down version the
> second time around.
>
> After finishing an implementation of SOAP, I have come to the *personal*
> opinion that sparse arrays add a lot of complexity, slow down implementations
> for no benefit to the majority of applications.
>
> There is also a discussion on the interoperability list now going on
> to which the response seems to be that every slot in an array can
> be one of three states: hold a value, be nil, or not be present
> (which is different to nil).
>
> This three state logic makes implementation of library code painful.
>
> To me sparse arrays are useful only a small percentage of the time and
> so should be removed from the low level SOAP protocol and moved to the
> layer built on top. For example, use an array of complexType with
> two elements - one for the key, and one for the value.
>
> An alternative is to allow a WSDL file somehow say that this array
> is sparse (with the default being the array must not be encoded using
> the sparse representation).
>
> At present *all* arrays could be encoded using the different sparse
> representation with positions and offsets. This means that all libraries
> have to worry about this complexity.
>
> Alan
>
> ps: I have similar concerns about nil values (for example, you cannot
> decode a C++ array of int's as the array may have a nil in it) and
> href=. In both cases every element being decoded has to perform additional
> checks, which adds up if performance is a concern.
>
Received on Thursday, 20 September 2001 08:51:45 UTC