[
Lists Home |
Date Index |
Thread Index
]
On Fri, Jan 25, 2002 at 01:30:07PM -0800, Joe English wrote:
| >
| > Sequential Random
| > +----------------------------------------------------------
| > |
| > Push | SAX (events with replay)
| > |
| > Pull | Pull Parser DOM
| > |
| > +-------------------------------------------------------
| >
| > The confusion arises since SAX and DOM are different
| > in two regards: (a) processing model (push vs pull)
| > and (b) access model (random vs sequential).
|
| The way I see it the DOM is more of a "slurp" model --
| the application doesn't get involved during parsing, instead
| it gets the whole tree in one big gulp.
Given that DOM and SAX are interfaces, I was trying
to divorce parser from the analysis; as a product
like SoftwareAG's Tamino offers a DOM interface over
a database and hence without parsing. In this
case the word "random access" describe exactly
the requirement imposed by the DOM interface.
| I'd describe the main difference as "event-driven" vs.
| "tree-based".
But SAX is a interface which represents a tree! I
think the words "event-driven" and "tree-based" do not
do as well as "sequential" vs "random" access.
| Event-driven processing models can have a "push"
| interface (like SAX, where the parser calls the
| application) or a "pull" interface (where the
| application calls the parser).
Good that we agree on push vs pull. This is a flow
control issue, which is, as you describe independent
of the access issue. One could devise a push interface
(where the data source calls the application) that
allows the application to replay the events. In this
case, random access would be required for the push
interface. It just happens that such an interface
isn't all that useful... I think.
On Fri, Jan 25, 2002 at 03:21:42PM -0800, Jason Diamond wrote:
| As an alternative to "event-driven", I use the term "stream-based"
| Both SAX and .NET's XmlReader are "stream-based" but only SAX
| is "event-driven".
Yes, stream-based is much better than event-driven;
I tend to associate event-driven with a push interface.
Where stream-based is much closer a synonymn to sequential
access. The only problem with stream-based is that it
doesn't have a good clean antonym.
Best,
Clark
--
Clark C. Evans Axista, Inc.
http://www.axista.com 800.926.5525
XCOLLA Collaborative Project Management Software
|