Re: SAX - endDocument() confusion again

Elliotte Rusty Harold <[email protected]> Fri, 27 Feb 2004 15:27:53 -0500
Newsgroups gmane.text.xml.sax.devel,gmane.text.xml.devel
Message-ID <p06010201bc6556929ee4@[192.168.254.4]>
At 2:07 PM -0500 2/27/04, Karl Waclawek wrote:

><quote>
>The application must assume that the document is unusable after the parser
>has invoked this method, and should continue (if at all) only for the sake
>of collecting additional error messages: in fact, SAX parsers are free to
>stop reporting any other events once this method has been invoked.
></quote>

Yuck. That is nasty. This is why specs need a normative test suite. 
However, I think the text under endDocument() is more important:

The SAX parser will invoke this method only once, and it will be the 
last method invoked during the parse. The parser shall not invoke 
this method until it has either abandoned parsing (because of an 
unrecoverable error) or reached the end of input.

Clearly it's OK to call endDocument after a fatalError. Is it 
required? I think so, but it's arguable. David Brownell claims it's 
required 
<http://www.geocrawler.com/mail/msg.php3?msg_id=8561128&list=13179> 
and it's certainly useful to be able to depend on this.

In practice, the only two actively developed SAX parsers for Java 
(Xerces-J and Oracle) do not call endDocument. Neither does Crimson. 
Some lesser known parsers like the various AElfred derivatives do.
-- 

   Elliotte Rusty Harold
   [email protected]
   Effective XML (Addison-Wesley, 2003)
   http://www.cafeconleche.org/books/effectivexml            
   http://www.amazon.com/exec/obidos/ISBN%3D0321150406/ref%3Dnosim/cafeaulaitA 


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
List: sax-devel, [email protected]
See:  http://www.saxproject.org/
https://lists.sourceforge.net/lists/listinfo/sax-devel