W3C home > Mailing lists > Public > xml-dist-app@w3.org > March 2002

Re: The reason for roots?

From: Jacek Kopecky <jacek@systinet.com>
Date: Fri, 22 Mar 2002 11:07:12 +0100 (CET)
To: Martin Gudgin <marting@develop.com>
cc: XML Protocol Discussion <xml-dist-app@w3.org>
Message-ID: <Pine.LNX.4.44.0203221102010.29005-100000@mail.idoox.com>
 Gudge,
 the problem is that in SOAP 1.1 serialization rules would say 
that C must be serialized "as an independent element on top level 
of serialization" because it has multiple references to it. 
 In SOAP 1.2 we haven't forbidden this, although we don't talk 
about this any more (so if somebody started from reading SOAP 
1.2, they would not even think of serializing something 
out-of-line). 
 Now if non-roots (non-serialization-roots, that is) can be
anywhere in the message, not just as descendant EIIs of a
serialization root, we have to mark some of them. SOAP 1.1 took
the approach of marking the non-roots that appear somewhere
funky, but this was not crisp enough. So we can either mandate
marking the roots or the non-roots. We chose roots.
 Oh, BTW, I thought my graph below has two roots (according to 
your original definition), not zero.
 Best regards,

                   Jacek Kopecky

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



On Fri, 22 Mar 2002, Martin Gudgin wrote:

 > Ahh, OK I think I see what's going on here. A graph may or may not have a
 > root. The graph you show below has no root. BUT there still has to be at
 > least one start point for serialization. Having said that does that
 > information need to be carried in the envelope? Why does the deserializer
 > need A and/or B to be labeled root='true' in your example below?
 > 
 > Gudge
 > 
 > 
 > ----- Original Message -----
 > From: "Jacek Kopecky" <jacek@systinet.com>
 > To: "Martin Gudgin" <marting@develop.com>
 > Cc: "XML Protocol Discussion" <xml-dist-app@w3.org>
 > Sent: Thursday, March 21, 2002 3:14 PM
 > Subject: Re: The reason for roots?
 > 
 > 
 > > Gudge,
 > >  I disagree with the first fact you listed below. In a general
 > > graph there can be no such node (your fact 4). I thought we were
 > > talking about "serialization roots" which are the nodes from
 > > which serialization starts.
 > >  The second fact I also disagree with because you can have a
 > > graph like
 > >
 > > +---+   x
 > > | A |------+     (the nodes are named for the sake
 > > +---+      |        of referencing them in my text)
 > >            V
 > > +---+ y  +---+
 > > | B |--->| C |
 > > +---+    +---+
 > >
 > > and then you can serialize A into a header and serialize B into
 > > the body (or a different header).
 > >  But if we do forbid the "independent" elements (as indicated in
 > > the thread starting with my message [1]) the root shall (or
 > > should) always be apparent from its context and from the
 > > application specification.
 > >  On the other hand, this issue is also affected by the result of
 > > the discussion on encodingStyle on Header and Body because I
 > > think that if we put encodingStyle on Header, it clearly becomes
 > > a serialization root. 8-) Then we'd have to allow arbitrary
 > > attributes (root attributes from different encodings) on Header.
 > > Same for Envelope. Not really nice I think.
 > >  Best regards,
 > >
 > >                    Jacek Kopecky
 > >
 > >                    Senior Architect, Systinet (formerly Idoox)
 > >                    http://www.systinet.com/
 > >
 > > [1] http://lists.w3.org/Archives/Public/xml-dist-app/2002Mar/0137.html
 > >
 > >
 > > On Thu, 21 Mar 2002, Martin Gudgin wrote:
 > >
 > >  > During the recent rework on Part 2 Section 2 and 3 I spent quite a
 > while
 > >  > thinking about roots as they relate to the data model. It may be that
 > my
 > >  > imagination is not firing on all cylinders but here are the 'facts' as
 > I see
 > >  > them;
 > >  >
 > >  > 1.    A root is a node with no inbound edges
 > >  >
 > >  > 2.    There is a path from a root node to all other nodes in the graph
 > >  >
 > >  > 3.    Given 1 and 2 it *is not* possible to have more than one root
 > >  >
 > >  > 4.    Given 1 and 2 it *is* possible to have a graph with no root
 > >  >
 > >  > So, I'm at a loss as to why I would want to label a given node as the
 > root
 > >  > of the graph unless it's to avoid the deserializer having to work it
 > out by
 > >  > inspection. Is this the reason?
 > >  >
 > >  > All input gratefully received
 > >  >
 > >  > Gudge
 > >  >
 > >
 > 
Received on Friday, 22 March 2002 05:07:14 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:59:09 GMT