Re: Definition of cloneNode method

Ray, 
 
Thanks for your reply. 
 
>  I have trouble following your description or your intent. 
 
My broad intent was to send a friendly response to the invitation in the DOM 
Level 1 spec: 
 
    Comments on this document should be sent to the public mailing list 
www-dom@w3.org. 
 
I should probably have begun by saying that I liked the spec a lot.  
Congratulations to all who invested so much effort in it.  The application
of 
object concepts in the DOM model of XML is very successful.  This is why I
was 
looking at the DOM model in some detail in thinking about query language 
design for XML. 
 
So my detailed intent was to suggest to the editors that some clarification
of 
cloneNode might be helpful.  If so, I don't know what process is envisaged - 
there are already one or two errata noted, and other standards often set up
an 
interpretations document pending incorporation into a revised spec. 
 
Your commonsense description of deep cloning 
 
>  The deep clone copies the hierarchy producing a set of new nodes  
>  which bear a 1:1 correspondence to the original hierarchy from  
>  the cloned node on down, but none of which point to the original  
>  nodes that were cloned as parents, siblings, or children. 
 
is what would be expected, but it's not exactly what the spec says. 
 
And maybe your difficulty with my description was with the last part, which
is 
about shallow cloning, not deep cloning: 
 
> David Beech wrote: 
 
>> Just to check my understanding of shallow cloneNode - this will  
>> copy the chosen node, including its childNodes attribute, which  
>> (in IDL as in Java) consists of references to other objects,  
>> i.e. to the original child nodes. Hence by following the  
>> parentNode reference in the child, and then the parentNode  
>> reference again, one can arrive at the original parent (if any) 
>> of the cloned node, even though parentNode is null in the clone. 
 
On this reading, the clone node would refer to the subnodes of the original 
hierarchy, but they would be unaware of it - they would only have their 
original parentNode attributes. If this is not correct, it would be helpful 
also to clarify just what is cloned in a shallow clone. 
 
Within the context of a query language, the relevance of all this is in 
defining precisely what is the result of a query, and whether one can
navigate 
to the original ancestor of a resulting fragment.  For example, this might 
occur where the result is from a subquery nested within the larger query. 
 
Thanks, 
 
  David  
  
========================================================================  
David Beech			Oracle Corporation, 500, Oracle Parkway,    
Consulting MTS			M/S 2op12, Redwood Shores, CA 94065   
Server Technology		Phone: (650)506-6420, fax: (650)506-7582 
======================================================================== 
 
DISCLAIMER:  Any statements made in this message are at best my own  
opinions, and are not necessarily endorsed by Oracle Corporation.

Received on Thursday, 31 December 1998 02:55:09 UTC