- From: Jacek Kopecky <jacek@systinet.com>
- Date: Wed, 14 Nov 2001 20:20:58 +0100 (CET)
- To: Simon Fell <soap@zaks.demon.co.uk>
- cc: <xml-dist-app@w3.org>
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