Zum Inhalt springen

Simple API for XML

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 5. Oktober 2005 um 17:18 Uhr durch JakobVoss (Diskussion | Beiträge) (Einleitung, Definition und Ereignisse umgeschrieben und mit vorhandenen Artikeln sinnvoll verlinkt (auch für nicht-nerds!)). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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