Die Simple API for XML (SAX) ist ein 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 Callback-Funktionen auf. Eine Anwendung, die SAX nutzt, kann eigene Unterprogramme als Callback-Funktionen registieren 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ängige 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.
SAX-Ereignisse und Callback-Funktionen
In SAX sind für die einzelnen Grundbestandteile eines XML-Dokumentes folgende Ereignisse (SAX events) definiert:
- 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 werden
- ignorableWhitespace - Leerzeichen
- processingInstruction
Am Version 2.0 gibt es zusätzlich folgende Ereignisse
- skippedEntity
- startPrefixMapping
- endPrefixMapping
Kommentare, CDATA sections und Deklarationen vor den eigentlichen XML-Daten werden nicht ausgewertet, allerdings können SAX-Parser dementsprechend erweitert werden.
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
Weblinks
- Homepage des SAX-Projekts (englisch)
- Top Ten SAX2 Tips (englisch)