package jdom;

import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;

public class XmlValidHandler extends DefaultHandler{

    private boolean bool_valid;

    public XmlValidHandler(){
        this.bool_valid = true;
    }
    
    public void startDocument ()
	throws SAXException
    {
        System.out.println("Start to read xml document");
    }

    public void reportState(){
        if(isValid()){
            System.out.println("Document valide.");
        }
        else{
            System.out.println("Document NON valide.");
        }
    }

    public boolean isValid(){
        return this.bool_valid;
    }

    private void reportProblem(String generalMessage, SAXParseException e){

        System.err.println(generalMessage);
        System.err.println("Ligne : "+e.getLineNumber());
        System.err.println("Colonne : "+e.getColumnNumber());
        System.err.println("Message : "+e.getMessage());

    }

    @Override
    public void fatalError(SAXParseException e){
        reportProblem("Erreur de validation : erreur fatale", e);
        this.bool_valid = false;
    }

    @Override
    public void error(SAXParseException e){
        reportProblem("Erreur de validation : erreur ", e);
        this.bool_valid = false;
    }

    @Override
    public void warning(SAXParseException e){
        reportProblem("Warning", e);
        this.bool_valid = false;
    }

}
