Simple API for XML
aus Wikipedia, der freien Enzyklopädie
Die Simple API for XML (SAX) ist ein Pseudo-Standard, der ein Application Programming Interface (API) zum Parsen von XML-Daten beschreibt. Die aktuelle Hauptversion SAX 2.0 wurde 2000 von David Megginson veröffentlicht und ist Public Domain. Ein SAX-Parser liest XML-Daten als sequentiellen Datenstrom und ruft für im Standard definierte Ereignisse vorgegebene Rückruffunktionen (callback function) auf. Eine Anwendung, die SAX nutzt, kann eigene Unterprogramme als Rückruffunktionen registrieren und auf diese Weise die XML-Daten auswerten.
Im Gegensatz zum Document Object Model (DOM) ist SAX zustandslos und erlaubt keinen freien Zugriff auf die Inhalte eines XML-Dokumentes. Damit ist SAX auch für die Verarbeitung großer Datenmengen geeignet. Die SAX-API ist Programmiersprachen-unabhängig definiert und ermöglicht es einer Anwendung XML-Parser verschiedener Hersteller zu verwenden. SAX-Parser sind in mehreren Programmiersprachen implementiert. Auf der offiziellen Homepage des SAX-Projektes ist die Schnittstellendefinition als kommentierter Java-Quellcode veröffentlicht.
Inhaltsverzeichnis |
[Bearbeiten] SAX-Ereignisse und Rückruffunktionen
In SAX sind für die einzelnen Grundbestandteile eines XML-Dokumentes folgende Ereignisse (SAX events) definiert:
setDocumentLocator
startDocument
endDocument
startElement
- wird bei einem öffnenden Tag aufgerufen (siehe auch SGML-Element).endElement
- wird bei einem schließenden Tag aufgerufen.characters
- wird aufgerufen, wenn Zeichendaten (XML-Terminologie: [P]CDATA) gelesen werdenignorableWhitespace
- Leerzeichen, die normalerweise nicht Bestandteil des eigentlichen Inhalts sindprocessingInstruction
Ab Version 2.0 gibt es zusätzlich folgende Ereignisse
skippedEntity
startPrefixMapping
endPrefixMapping
Kommentare und Deklarationen vor den eigentlichen XML-Daten werden nicht ausgewertet, allerdings können SAX-Parser dementsprechend erweitert werden.
[Bearbeiten] Beispiel
[Bearbeiten] XML-Dokument
<?xml version="1.0" encoding="ISO-8859-1"?> <wurzel> <kind alter="20">Hallo</kind> <?mark ACHTUNG ?> </wurzel>
[Bearbeiten] SAX-Ereignisse
- startDocument
- startElement ("wurzel")
- ignorableWhitespace (Zeilenumbruch und " ")
- startElement ("kind", mit Attribut "alter")
- character ("Hallo")
- endElement ("kind")
- ignorableWhitespace (Zeilenumbruch und " ")
- processingInstruction("mark","ACHTUNG ")
- ignorableWhitespace (Zeilenumbruch)
- endElement ("wurzel")
- endDocument
[Bearbeiten] Literatur
- David Brownell: SAX2, O'Reilly, ISBN 0-596-00237-8
- W. Scott Means, Michael A. Bodie: The Book of SAX, No Starch Press, ISBN 1-886411-77-8
[Bearbeiten] Weblinks
- Homepage des SAX-Projekts (englisch)
- Top Ten SAX2 Tips (englisch)