// Analyse0.java
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;
// et une tartine de classe !
public class Analyse0 {
public static void main (String argv[])
throws IOException {
if (argv.length != 1) {
System.err.println
("Usage: Analyse0 fichierSource");
System.exit (1);
}
DefaultHandler handler = new DefaultHandler();
// le handler réalise les traitements
// pendant le parsing
// içi : celui par defaut qui ne fait rien
SAXParserFactory factory =
SAXParserFactory.newInstance();
// une "factory" (configurateur) de parseur
// içi : celui par defaut
try {
SAXParser saxParser = factory.newSAXParser();
// obtenir un parseur ("compilateur") XML
saxParser.parse( new File(argv[0]), handler );
// parser (compiler) le fichier en réalisant
// les traiements indiqués
} catch (Throwable t) {
t.printStackTrace ();
}
System.exit (0);
}
}
$ javac -classpath .:/usr/local/jaxp-1.1/jaxp.jar: /usr/local/jaxp-1.1/crimson.jar: /usr/local/jaxp-1.1/xalan.jar Analyse0.java indiquer le chemin d'accès aux packages "XML" de sun (la version JAXP 1.1) INUTILE dans le JDK 1.4 $ java -classpath .:/usr/local/jaxp-1.1/jaxp.jar: /usr/local/jaxp-1.1/crimson.jar: /usr/local/jaxp-1.1/xalan.jar Analyse0 dialogue2.xml $
<?xml version='1.0' encoding='ISO-8859-1' ?>
<!-- fichier dialogue1err1.xml -->
<dialogue>
<situation>acte I, Scene 1 : madame pernelle et flipote sa servante,elmire, mariane, dorine, damis, cléante.</situation>
<!-- erreur -->
</replique>
<personnage>madame pernelle</personnage>
<texte>Allons, Flipote, allons, que d'eux je ......
$ CLASSPATH=.:/usr/local/jaxp-1.1/jaxp.jar: /usr/local/jaxp-1.1/crimson.jar: /usr/local/jaxp-1.1/xalan.jar évite l'option pénible et répétitive -classpath INUTILE dans le JDK 1.4 $ java Analyse0 dialogue1err1.xml org.xml.sax.SAXParseException: org.apache.crimson.parser/P-034 dialogue 5 at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3035) at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3029) at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java, Compiled Code) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499) at org.apache.crimson.parser.Parser2.parse(Parser2.java:304) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433) at javax.xml.parsers.SAXParser.parse(SAXParser.java:346) at javax.xml.parsers.SAXParser.parse(SAXParser.java:286) at Analyse0.main(Analyse0.java:25)