W3C home > Mailing lists > Public > www-dom@w3.org > April to June 1998

Re: Hello and NodeIterator Revisited

From: Don Park <donpark@quake.net>
Date: Tue, 5 May 1998 09:18:33 -0700
Message-ID: <003001bd7841$76340550$2ee044c6@arcot-main>
To: "www-dom" <www-dom@w3.org>

>I really like the way you put the ContainerIterator into the Node to
>model the "betweeness".  But instead of putting the NodeIterator into
>the ContainerNode, put a "point" into the list.  And then give that
>"point" to the NodeIterator.  Then you no longer have a reference in
>the ContainerNode to the NodeIterator so it can go out of scope now
>when the user is done with it and in the destructor you can tell it to
>remove it's "point" from the ContainerNode.  Then the NodeIterator just
>uses that "point" the same way it used itself previously to navigate
>within it's parent ContainerNode.  Of course, this just moves the
>issue of "release" into another object behind the scenes.  Does this
>not allow you to get rid of "release" in the NodeIterator interface?
>I have not implemented this, I could be missing something.

I can't believe I let the marker technique slip my mind.  I need to play
more Golf.

I didn't want to admit defeat without solid evidence so I went ahead and
implemented it.  It did work wonderfully.  Thanks for the reminder.  One
thing that disturbed me was how often the NodeIterator is being created and
destroyed just for a simple XML file.  It seems that TreeIterator should be
used as often as possible to cut down on NodeIterator instances.

BTW, I rewrote SAXDOM while I was at it (crazy things happen when I can't
sleep) and renamed it to FREE-DOM so the new stuff is inside the FREE-DOM
0.2alpha version which can be found at:


FREE-DOM means Free DOM implementation.  FREE-DOM supports but is not
limited to SAX.  Look for AElfred and MSXML support in the near future with
expanded DOM spec support (meaning XML and HTML portion of the spec).


Don Park
Received on Tuesday, 5 May 1998 12:25:34 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 20 October 2015 10:46:04 UTC