Streaming XML and SAX

Didier PH Martin martind at
Mon Mar 1 15:35:46 GMT 1999

Hi Nathan,

It seems like something is backwards here!

If an application is processing a series of documents, once it has a
type name for that document (root element name + namespace), it knows how it
wants to process the document and doesn't need a Pi. (What's a Gi? Is that

Yes, obviously a document (or name it the way you want - I don't want to
argue about streams vs documents :-) may not have any PI, may not have any
name space reference. thus, only GI are then used as pattern match in this
case. Sorry I forget to precise the complete resolution mechanism which is
based on pattern match. thus, the router use this pattern match to dispatch
to the right interpreter. Element matched are:

a) PI
b) name space definition
c) Root GI

Any of these elements could be used as a pattern match. Yes a GI is part of
SGML and therefore part of XML. This is simply the element. In your example
it could be something like "vendor-id". So, because the interpreter is based
on a pattern matrch mechanism, everything that could be used for a pattern
match can work. Actually, we use the three elements mentionned above.

Also, you should be able to use the same parser for all document types and
then do
the routing on the parse events, saving you from having to do a "pre-parse"
determine the universal type name.

Glad to see we both agree on the same mechanism. This is axactly what we do.
The router mechanism is just a temporary interpreter included in the parser
to load/unload the interpreters. To be precise the mechanism is:
a)run the router as a special kind of interpreter
b)parse the document (always)
c) determine which interpreter to load then load it and let it run.
d) the interpreter run until the end of the document
e) at the end of the document: the router/interpreter is then loaded and run
again until a new interpreter is recognized.
f) got to a)
The parser is always the same, only the interpreters are loaded/run and the
router is just a special kind of interpreter. Do you have a more efficient
mechanism to suggest?

Didier PH Martin
mailto:martind at

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