// Analyse2.java
//
// Parse avec l'Api SAX un document XML 
// Parsing Validant

import java.io.*;
import org.xml.sax.*;
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;

public class Analyse2 extends DefaultHandler {
  public static void main (String argv[])
  throws IOException {
    if (argv.length != 1) {
      System.err.println 
        ("Usage: Analyse2 fichierSource");
      System.exit (1);
    }
    DefaultHandler handler = new Analyse2();
    SAXParserFactory factory = SAXParserFactory.newInstance();
    factory.setValidating(true);
    try {
      SAXParser saxParser = factory.newSAXParser();
      saxParser.parse( new File(argv[0]), handler );
    } catch (SAXParseException e) {
      System.out.println("\n** Parsing error"
              + ", line " + e.getLineNumber()
              + ", uri " + e.getSystemId());
      System.out.println("   " + e.getMessage() );
      if (e.getException() != null)
         e.getException().printStackTrace();
      System.exit (2);
    } catch (SAXException e) {
      if (e.getException() != null)
         e.getException().printStackTrace();
      System.exit (3);
    } catch (ParserConfigurationException e) {
      e.printStackTrace();
      System.exit (4);
    } catch (IOException e) {
      e.printStackTrace();
      System.exit (5);
    }
    System.out.println ("parsing reussi");
    System.exit (0);
  }
  public void error(SAXParseException e)
  throws SAXParseException
  {
    throw e;
  }
}

