[Home] [By Thread] [By Date] [Recent Entries]

  • From: Miles Sabin <msabin@c...>
  • To: "'xml-dev@i...'" <xml-dev@i...>
  • Date: Wed, 2 Jun 1999 12:53:27 +0100

Andrew Douglas wrote,
<snip/>
> <root>
>   <elone>Hello</elone>
>   <eltwo>Goodbye</eltwo>
>   <elone>Gutten Adbend</elone>
>   <eltwo>Aufwiedersehen</eltwo>
>  </root>
>
> My underlying structure looks like this
>
>
>                         opentag(root)
>                            |
>                        zomcontent
>                |-----------+-----------------|
>            sequence                      sequence
>         |------+-----|                |------+-------|       
> opentag(elone) opentag(eltwo) opentag(elone) opentag(eltwo)
>       |               |              |             |   
>     text            text           text          text
>     
> Not suprisingly, it looks like a tree!  So, all these 
> things can be Nodes, but not all are Elements (opentags 
> are) -- some are probably DocumentFragments(zomcontent, 
> sequence, ...).
>
> So, my DOM implementation has the usual first/last
> Child, getChildNodes, get Next/Previous siblings, and 
> so on, but sometimes these children aren't Elements, 
> but are DocumentFragements.

Ahh ... no, I'm afraid that's not quite right. The DOMs
idea of the structure of your document would be,

  Document doc
    Element root          == doc.getDocumentElement()
      Element elone       == root.getFirstChild()
        Text Hello        == elone.getFirstChild()
      Element eltwo       == elone.getNextSibling()
        Text Goodbye
      Element elone
        Text Gutten Adbend
      Element eltwo
        Text Aufwiedersehen

A Document *never* has a DocumentFragment amongst its
children: the latter exist solely to provide a 
lightweight holder for Nodes which are _owned_by_, but 
not _part_of_ a given Document.

Note that all Nodes that are created on a particular
Document (eg. via Document.createElement()) are always
owned by that Document (and so can't be pasted into a
different doc), but don't become part of it until they're
explicitly added (eg., via someNode.appendChild()).

I hope that helps a bit ...

Cheers,


Miles

-- 
Miles Sabin                          Cromwell Media
Internet Systems Architect           5/6 Glenthorne Mews
+44 (0)181 410 2230                  London, W6 0LJ
msabin@c...           England

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i...
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo@i... the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo@i... the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa@i...)



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member