[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: SAX/Java Proposed Changes
Elliotte Rusty Harold wrote: > Then your code will break when used with some of today's parsers which > do call endDocument() after a fatal error.. :-( See the example program below, which demonstrates my statement with Crimson, Xerces, ... > It's a question of where you have that information. It's often > convenient to know the document has ended inside the ContentHandler. Not > that you can't have the method that calls parse() then call > endDocument() inside the ContentHandler, but it's ugly, hard to explain, > and error prone. I'd support your opinion 100% if it wouldn't break existing applications. Jochen import java.io.StringReader; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; public class Main { public static void main(String[] args) throws Exception { String doc = "<foo/>"; XMLReader xr = SAXParserFactory.newInstance().newSAXParser().getXMLReader(); xr.setContentHandler(new DefaultHandler(){ public void startDocument() throws SAXException { System.out.println("startDocument"); throw new SAXException("startDocument fails"); } public void endDocument() throws SAXException { System.out.println("endDocument"); } }); xr.parse(new InputSource(new StringReader(doc))); } }
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|