Lists Home |
Date Index |
- From: <firstname.lastname@example.org>
- To: <email@example.com>
- Date: Wed, 25 Nov 1998 21:04:30 -0500 (EST)
Mark D. Anderson writes:
> This current thread regarding data vs. API prompts a few
> questions I've had for a while.
> 1. Is the difference between DOM and SAX one of programming
> style only (implementation efficiency aside)?
> http://www.megginson.com/SAX/event.html seems to say so.
> Or is there more to it than "trees vs. events": that SAX
> is in the end a driver API that must accomodate anything
> a low-level parser wants to offer, while in the end DOM
> is a least-common-denominator procedural model for browsers?
An event-based API is the equivalent of a depth-first, LR traversal of
a tree; a tree can be (re)generated from the events. The difference
is implementation efficiency, but that's a very big one: an
event-based API makes it possible to process a very large document
using relatively constant resources, but makes arbitrary queries and
transformations difficult; a tree-based API makes queries and
transformations easy, but resource usage increases with the size of
It is possible to design a tree-based interface that allows partial
processing before the entire tree has been built, but in general,
event-based APIs do a better job of that. For streaming information
(say, from a real-time news feed or an e-commerce server), event-based
APIs are probably the only workable choice.
> 2. How does/will metadata affect either?
> Once the many XML-based schema proposals (DCD, XSchema, etc.)
> are consolidated, when I parse some XML with respect to a schema,
> I would like my annotated tree (grove, whatever) to be able to tell me
> meta-info about the nodes using that schema (what is its default, is
> this optional, what is the description string for this data type
> or this element type, etc.). I would like to use the very same API
> to ask questions not just about element values, but about the
> element metadata as well. It seems that right now neither
> DOM nor SAX is ready for this?
As long as the schema is an XML document (and all current proposals
are), then you can load the document into a separate DOM tree or read
it as a separate event stream. There will almost certainly be
libraries that will do this for you automatically and let you ask
queries (what is the maximum integer value of a <degrees> element,
SAX could also handle this with an additional metadata event interface
without disrupting existing implementations, but the library approach
seems more flexible.
All the best,
David Megginson firstname.lastname@example.org
xml-dev: A list for W3C XML Developers. To post, mailto:email@example.com
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/
To (un)subscribe, mailto:firstname.lastname@example.org the following message;
To subscribe to the digests, mailto:email@example.com the following message;
List coordinator, Henry Rzepa (mailto:firstname.lastname@example.org)