Hybrid event/tree interfaces (was: Walking the DOM (was: XML APIs))

Henry S. Thompson ht at cogsci.ed.ac.uk
Wed Nov 4 09:58:02 GMT 1998

Sean Mc Grath <digitome at iol.ie> writes:

> In my experience, there is a strong "principle of locality" in
> XML/SGML processing. I find I can get by quite happily with
> mini-tree structures harvested at suitable points from
> a larger document processed event-style. In my
> Python toolkit for SGML/XML processing I added support
> for sparse tree building some time ago and I find myself
> using it more and more.
> This is certainly far easier to do that implement virtual
> tree access with swapping to disk etc. You don't need
> no object database either:-)

Our experience is very much in agreement with this.  We have been
using an API [1] which allows you to switch from event to
tree(-fragment) view for the last few years, and it is a very
productive way to go.  You can think of it as allowing you to loop
over nodes in a document which match a query in a restricted query
language, restricted in that you can only query properties
(e.g. tag name, attribute values) of candidate nodes and their
ancestors:  no descendents or siblings.  If you like what you see,
THEN you can ask for the whole subtree rooted in that node, and do
whatever you like with it.

It should be clear that a simple implementation of this is possible,
which only needs to keep a stack of current ancestor start-tags.  The
result is no upper bound on document size:  we regularly push 2GB of
XML through a chain of filters implemented in this way.


[1] http://www.ltg.ed.ac.uk/software/xml/
  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
     2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
	    Fax: (44) 131 650-4587, e-mail: ht at cogsci.ed.ac.uk
		     URL: http://www.ltg.ed.ac.uk/~ht/

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)

More information about the Xml-dev mailing list