SAX Validation

David Megginson david at
Tue Nov 30 11:59:56 GMT 1999

Mark Papiani <mp at> writes:

> I believe that one of the advantages of SAX parsers is that they report
> parsing events via callbacks and 
> can consume far less memory than DOM based parsers that build an in
> memory parse tree. 
> My question has to do with when validation errors are reported by SAX
> parsers. For example, if the closing tag of the root element is missing
> from an XML document, would a SAX parser only report that the document
> was invalid, after it had reported all the other valid parsing events
> for the rest of the document?

That really depends on the parser -- it has to report the error some
time before the endDocument() event, but when it does so depends on
the implementation.  If (for example) your parser builds an in-memory
tree first and then walks through it or if it buffers part or all of
the event stream, it might report the error immediately after the
startDocument() event.  Typically, though, the parser will deliver
events as it finds them, so you won't find out about the problem until
near the end.

By the way, the missing tag is a well-formedness error, so SAX parsers 
will use fatalError() rather than error() to report it.

All the best,


David Megginson                 david 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 unsubscribe, mailto:majordomo at the following message;
unsubscribe 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