import java.io.IOException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.xml.sax.SAXParseException;
import org.xml.sax.SAXException;
/**
 * Insert the type's description here.
 * Creation date: (21/11/2001 18:57:16)
 * @author: Administrator
 */
public class XMLFileConsolePrinter
{
/**
 * Starts the application.
 * @param args an array of command-line arguments
 */
public static void main(java.lang.String[] args)
{
	//  Récupération du nom du fichier passé en paramètre

	String XMLFile = args[0];

	try
	{
		//  instanciation de la Factory de parseurs SAX
		
		SAXParserFactory factory = SAXParserFactory.newInstance();

		
		//  Paramétrage de la Factory pour que le parseur soit validant

		factory.setValidating(true);
		factory.setFeature("http://apache.org/xml/features/validation/warn-on-duplicate-attdef", true);
		factory.setFeature("http://apache.org/xml/features/validation/warn-on-undeclared-elemdef", true);
		

		//  instanciation d'un objet de type SAXParser qui encapsule
		//  un objet de type XMLReader

		SAXParser saxParser = factory.newSAXParser();


		//  instanciation du gestionnaire de contenu

		MyEventHandler myEventHandler = new MyEventHandler();


		//  abonnement du gestionnaire au parseur ET lecture du fichier XML

		saxParser.parse(XMLFile, myEventHandler);
	}
	catch(ParserConfigurationException pce)
	{
		System.out.println("\n** Erreur de configuration du parseur. **");
		System.out.println(pce.getMessage());
	}
	catch(SAXParseException spe)
	{
		System.out.print("\n** Erreur de lecture : le fichier " + spe.getSystemId() + " est mal formé. **");
		System.out.println("\n** Erreur ligne " + spe.getLineNumber() + ", colonne " + spe.getColumnNumber() + " : " + spe.getMessage() + " **");
	}
	catch(SAXException se)
	{
		System.out.println(se.getMessage());
	}
	catch(IOException ioe)
	{
		System.out.println(ioe.getMessage());
	}
}
}
