Re: Issue 302: Graph edges that do not terminate

Jacek Kopecky writes:

>>  SOAP Encoding rules serialize a 
>> given graph starting at a given thing
>> (be it an edge or a node, this is left 
>> unspecified in the spec AFAIK).

>>This process is a recursive one - 
>> serializing a node also means
>> serializing all its outgoing edges, 
>> serializing an edge also means
>> serializing the target node etc. 

Let me respectfully disagree. We in general go to great lengths not to 
describe a "process" in the sense you mean;  we specify the encoding (and 
the rest of SOAP, where possible) declaratively.  Thus, the encoding 
chapter establishes a correspondence between every legal serialization and 
its corresponding graph.  We don't tell you how to build on from the 
other, in the sense of going a step at a time.  That's your job as an 

Actually, I think the status quo does support multiples of what you are 
calling roots, which I take to be named edges with no source.  What about 
(augmenting on the example from my note of a few minutes ago):

        <A id="Aid" env:encodingStyle="...soap encoding..."> <!--struct-->
        <X ref= "Aid" env:encodingStyle="...soap encoding..."/>

I'm still a little vague as to whether we allow this, but I think we do. 
Doesn't it correspond to the following?

       |     |
       |     |
      A|     | X
       |     |
       |     |
     | Struct  |
        |    |
        |    |
       B|    |C
        |    |
       "1"  "2"

Bottom line:  I can live with ruling out the X case, which I think does 
get you down to one root.  I'm strongly against claiming that we describe 
a process of serializing or deserializing.  I think we want to keep it 
declarative.  Thank you!

Noah Mendelsohn                              Voice: 1-617-693-4036
IBM Corporation                                Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142

Received on Tuesday, 10 September 2002 14:26:22 UTC