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.