DOM, SAX and Events

David Soroko davids at
Mon Jun 7 11:03:06 BST 1999

XML4j parser (from IBM) implements the Visitor pattern.
You run a traversal on the DOM tree and receive *events* into a visitor
that rides piggy back on the traversal object.



I'm currently using a SAX parser to parse an XML script which 
drives some application processing. I used SAX as it gave a 
nice fit with the Java event system. I've layered a lightweight 
application specific event system on top of SAX so those details 
are hidden from the application itself. This all works very nicely 
and is nothing new.

However I now realise that I may need to repeat parts of the script, 
i.e. run a particular section multiple times before continuing. I can't 
simply copy and paste parts of the XML doc as I don't know a priori
how many repetitions are required. I also can't revisit that part 
of the document because the SAX parser doesn't allow this.

So, I'm going to move to a DOM representation and do a tree-walk 
instead. I can then revisit subtrees whenever required. 
This should be no problem to implement, but leads me to wonder 
whether other people have met this same problem, and if 
so whether it'd be useful to have an event driven interface to 
the DOM?

Basically the interface just involves tree-walking and determining the 
types of nodes and generating the correct callbacks similar to 
SAX, albeit at a slightly higher level.

Is this something others have encountered? Is it an already solved 
problem and I've missed something?



David Soroko
Manna Network Technologies

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

More information about the Xml-dev mailing list