Simple API for XML

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 13. Juli 2006 um 12:47 Uhr durch YurikBot (Diskussion | Beiträge) (Bot: Ergänze: fa:اِی‌پی‌آی ساده برای اکس‌ام‌ال). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Zur Navigation springen Zur Suche springen

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 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.

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 werden
  • ignorableWhitespace - Leerzeichen, die normalerweise nicht Bestandteil des eigentlichen Inhalts sind
  • processingInstruction

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.

Beispiel

XML-Dokument

<?xml version="1.0" encoding="ISO-8859-1"?>
<wurzel>
  <kind alter="20">Hallo</kind>
  <?mark ACHTUNG ?>
</wurzel>

SAX-Ereignisse

  1. startDocument
  2. startElement ("wurzel")
  3. ignorableWhitespace (Zeilenumbruch und "  ")
  4. startElement ("kind", mit Attribut "alter")
  5. character ("Hallo")
  6. endElement ("kind")
  7. ignorableWhitespace (Zeilenumbruch und "  ")
  8. processingInstruction("mark","ACHTUNG ")
  9. ignorableWhitespace (Zeilenumbruch)
  10. endElement ("wurzel")
  11. endDocument


Literatur

Weblinks