Re: Issue 169: Forward References in SOAP Encoding

 Simon,
 my serialization of the circular double-linked list just
followed the (implied) schema:
   <complexType name="node">
     <sequence>
       <element name="value" type="integer"/>
       <element name="prev" type="node"/>
       <element name="next" type="node"/>
     </sequence>
   </complexType>
 Now if that schema had <all> instead of <sequence>, I'd just
serialize onto the wire the first thing that went under my
finger, in whichever order, if that thing was not already
serialized, in which case I'd refer to it.
 This kind of serialization is known as depth-first, and I bet
you know it. 8-) It is easily provable that in any contiguous
graph a depth-first serialization without revisiting nodes will
naturally produce back-reference-only serialization.
 Best regards,

                   Jacek Kopecky

                   Senior Architect, Systinet (formerly Idoox)
                   http://www.systinet.com/



On Wed, 14 Nov 2001, Simon Fell wrote:

 > As an implementor, i have some comments on this
 >
 > 1. If you look closely at Jacek's example[1] that shows a circular
 > linked list with no forward references, the lack of forward references
 > is achieved by carefully ordering the child elements prev & next. I'm
 > not convinced that (a) this proves all circular graphs can be
 > serialized without forward references or (b) the child element order
 > can be efficiently calculated at serialization time.
 >
 > 2. Currently the SOAP 1.1 spec allows you to write single pass
 > writers, by allowing to treat all potential multi-ref elements as
 > mutli-ref elements, so that you don't have to walk the graph twice.
 >
 > 3. the fact that the id attribute is not a "real" ID does not preclude
 > it from use in XPath.
 >
 > 4. Yes this makes building readers easier, but again, it is possible
 > in SOAP 1.1 to write a single pass reader.
 >
 > Cheers
 > Simon
 > www.pocketsoap.com
 > [1] http://groups.yahoo.com/group/soapbuilders/message/5594

Received on Wednesday, 14 November 2001 14:21:04 UTC