Lists Home |
Date Index |
On Fri, Jan 25, 2002 at 10:39:25PM -0600, Eric Bohlman wrote:
| So I'd classify parsers into pull vs. push on one dimension
| (where the flow of control resides) and event-based vs.
| tree-based on another, orthogonal, dimension (how much
| information is communicated at a time). It's certainly
| possible, BTW, to have a parser that is both tree-based and
| push; think of XML::Twig.
I like your description above (snipped). However, I'm not
sure that tree-based vs event-based is a clear distinction.
I'd rather use the access allowed by the API to the underlying
information. If the access is forward-only, then I call it
sequential access (like a singly linked list). Or, if the
access allows the caller to jump around the tree, then I'd
call it random access (like an array). The problem with
the word "tree" is that SAX iterates over a tree, so I would
consider SAX tree based. In fact, anything that works with
XML on an abstract level is tree-based. The problem with the
word "event" is that it's most often associated with call-backs,
aka "push". Thus, by using these two words you are more
likely to cause confusion then by staying with the words
"sequential" vs "random" access.
Clark C. Evans Axista, Inc.
XCOLLA Collaborative Project Management Software