Re: The reason for roots?

Would the following be a valid serialization of Jacek's graph, assuming C is a
terminal?

<headerA>
    <structA>
        <edgeX idref="#c"/>
    </structA>
</headerA>
<headerB>
    <structB>
        <edgeY idref="#c"/>
    </structB>
</headerB>
<headerC role=".../none">
    <whatIsThis id="#c">terminalC</whatIsThis>
</headerC>

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 07:11:39 UTC