Im folgenden Programm sollen die notwendigen Packages korrekt verwendet werden. Beachte dabei den korrekten CLASSPATH!
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
public class XML1 extends DefaultHandler {
static String dateiname;
public void parsen() throws Exception {
SAXParserFactory fabrik = SAXParserFactory.newInstance();
fabrik.setValidating(true);
SAXParser parser = fabrik.newSAXParser();
XMLReader reader = parser.getXMLReader();
reader.setContentHandler(this);
reader.parse(dateiname);
}
public void endDocument() throws SAXException {
System.out.println("Die Datei " + dateiname + " wurde erfolgreich geparst");
}
public static void main (String [] args) throws Exception {
dateiname = args[0];
XML1 proggi = new XML1();
proggi.parsen();
}
}
Ist die Umgebung korrekt vorbereitet, so erhalten wir nach dem Compilieren folgenden (fehlerfreien) Programmlauf:
alfred@duron:~/java/xml> java XML1 test.xml Die Datei test.xml wurde erfolgreich geparst
Für das ``Funktionieren'' des obigen Programmes sind folgende Abschnitte wesentlich:
Verändern wir (absichtlich) die XML-Datei test.xml, indem wir das schließende Element </skriptum> entfernen, erhalten wir die folgende Ausgabe:
alfred@duron:~/java/xml> java XML1 test.xml
Exception in thread "main" org.xml.sax.SAXParseException: XML-Dokumentstrukturen müssen
innerhalb derselben Entität starten und enden.
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at XML1.parsen(XML1.java:15)
at XML1.main(XML1.java:25)
Neben der Prüfung auf ``Wohlgeformtheit'' können XML-Dateien auch dahin geprüft werden, ob sie ``gültig'' sind. Dies ist Inhalt eines der nächsten Beispiele.