001
20.12.2005, 16:22 Uhr
virtual
Sexiest Bit alive (Operator)
|
DOM (="Document Object Model") basiert letztlich auf SAX (="Simplified API for XML"), dh wenn Du eine Datei "auf DOM Basis" einliest oder schreibst, wird DOM selbst wieder SAX benutzen. Der Unterschied ist eigentlich folgender:
DOM hält das ganze Dokument im Speicher, was für bestimmte Aufgaben von Vorteil ist, generell jedoch den nachteil hat, daß DOM damit nur für Dateien geeignet ist, welche eine bestimmte Größe nicht überschreiten. Auch der Abgleich mit einer DTD ist nur mit DOM möglich. DOM ermöglicht also generell einen Blick auf das ganze Dokument.
SAX dagegen arbeitet eher Ereignisgestuert. Man öffnet zB eine Datei. Eine XML Datei besteht dabei ja aus verschiedenen Strukturelementen: Element Node, Attribute, ProcessInstructions, Text Node verschiedener Coleur usw. SAX geht hin liest Die Datei also von vorne nach hinten und ruft, wenn es zB den Anfang eines Elements findet, einen entsprechende Routine des SAX parsers auf. Der SAX Parser, welcher DOM Bäume erstellt würde zB einen neuen Knoten im DOM Baum einfügen. Im gegensatz zu DOM hat man mit dem SAX Ansatz zunächstmal keinen Überblick über das gesamte Dokument, den muß man sich - wenn man ihn denn braucht - selbst irgendwie programmatisch verschaffen.
Wenn es Deine erste Begegnung mit XML ist, würde ich Dir zunächst zu DOM raten. Solltest Du tatsächlich auf gravierende Probleme stossen, welche DOM mit sich bringt, dann kannst Du es ja auf SAX umstellen. -- Gruß, virtual Quote of the Month Ich eß' nur was ein Gesicht hat (Creme 21) |