[
Lists Home |
Date Index |
Thread Index
]
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
elharo@metalab.unc.edu
Effective XML (Addison-Wesley, 2003)
http://www.cafeconleche.org/books/effectivexml
http://www.amazon.com/exec/obidos/ISBN%3D0321150406/ref%3Dnosim/cafeaulaitA
|