Hi, I was trying to write a DOM based parser to validate an XML file. But it was showing no errors/ exceptions though there was errors in my XML file. I extended the DefaultHandler class and overrided the error, fatalError and warning methods. Please help me out. Here's my code:
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
public class DOMCue2 extends DefaultHandler
{
static Document document;
public static void main(String[] args)
{
try
{
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
dbFactory.setValidating(true);
dbFactory.setIgnoringElementContentWhitespace(true);
DocumentBuilder db=dbFactory.newDocumentBuilder();
db.setErrorHandler(new DefaultHandler());
System.out.println("Trace output- 1");
document=db.parse(new File("book-order.xml"));
System.out.println("Trace output- 2");
}
catch(Exception e)
{
System.out.println(e);
}
}
public void error(SAXParseException e) throws SAXException
{
e.printStackTrace();
System.out.println(e.getMessage()+" : "+e.getLineNumber());
}
public void fatalError(SAXParseException e) throws SAXException
{
e.printStackTrace();
System.out.println(e.getMessage()+" : "+e.getLineNumber());
}
public void warning(SAXParseException e) throws SAXException
{
e.printStackTrace();
System.out.println(e.getMessage()+" : "+e.getLineNumber());
}
}