Lists Home |
Date Index |
- From: David Brownell <db@Eng.Sun.COM>
- To: "Simon St.Laurent" <firstname.lastname@example.org>
- Date: Thu, 25 Feb 1999 22:46:42 -0800
Simon St.Laurent wrote:
> Big question: can I plug someone else's SAX parser into your scanner, and
> then have your validation component work on my SAX events? While it's
> unlikely that I'd want to plug a different SAX parser in, it's quite
> possible that I'd want to work with the SAX events (transforming with XT,
> for instance) before performing validation.
Well, Sun's current package (released today with source :-) has some
infrastructure along those lines ... but it's a bit more integrated
with the DOM than with the SAX bits. That's to keep apps from needing
to do the sort of tree structure tracking that DOM already does. Since
it's in the DOM side, you can plug any SAX parser in to it.
Specifically, when DOM nodes are plugged into the tree there are certain
clearly defined callbacks which are made: the "XmlReadable" interface.
When those callbacks are made, the "parent" context is visible as a
DOM tree that doesn't fully correspond to the input document. It seems
that one of the more popular methods is doneParse(), called when the last
of an element's children is parsed. Also startParse() gets used to do
resolution of relative URLs (e.g. in external entities).
Those callbacks are intended for performing various application level
work such as integrity checks. Applications can provide diagnostics
with the same level of specificity (line, file, etc) as the parser
itself; in some cases such diagnostics will be reported directly
through the SAX error handler used by the parser.
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/ and on CD-ROM/ISBN 981-02-3594-1
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)