Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Java ist auch eine Insel von Christian Ullenboom
Buch: Java ist auch eine Insel (Galileo Computing)
gp Kapitel 13 Die eXtensible Markup Language (XML)
gp 13.1 Auszeichnungssprachen
gp 13.1.1 Die Standard Generalized Markup Language (SGML)
gp 13.1.2 Extensible Markup Language (XML)
gp 13.2 Eigenschaften von XML-Dokumenten
gp 13.2.1 Elemente und Attribute
gp 13.2.2 Beschreibungssprache für den Aufbau von XML-Dokumenten
gp 13.2.3 Schema - eine Alternative zu DTD
gp 13.2.4 Namensraum (Namespace)
gp 13.2.5 XML-Applikationen
gp 13.3 Die Java-APIs für XML
gp 13.3.1 Das Document Object Model (DOM)
gp 13.3.2 Simple API for XML Parsing (SAX)
gp 13.3.3 Java Document Object Model (JDOM)
gp 13.4 XML-Dateien mit JDOM verarbeiten
gp 13.4.1 JDOM beziehen
gp 13.4.2 Paketübersicht
gp 13.4.3 Die Document-Klasse
gp 13.4.4 Eingaben aus der Datei lesen
gp 13.4.5 Das Dokument als XML-Datei ausgeben
gp 13.4.6 Der Dokumenttyp
gp 13.4.7 Elemente
gp 13.4.8 Zugriff auf Elementinhalte
gp 13.4.9 Liste mit Unterelementen erzeugen
gp 13.4.10 Neue Elemente einfügen und ändern
gp 13.4.11 Attributinhalte lesen und ändern
gp 13.5 JAXP als Java-Schnittstelle zu XML
gp 13.5.1 Einführung in XSLT
gp 13.5.2 Umwandlung von XML-Dateien mit JDOM und JAXP
gp 13.6 Serielle Verarbeitung von XML mit SAX
gp 13.6.1 Ausgabe der Datei party.xml mit SAX


Galileo Computing

13.3 Die Java-APIs für XMLdowntop

Für XML-basierte Daten gibt es zwei wohldefinierte Verarbeitungsverfahren: DOM und SAX. Während DOM das gesamte Dokument in einer internen Struktur einliest und bereitstellt, verfolgt SAX einen ereignisorientierten Ansatz. Das Dokument wird in Stücken geladen und immer dann, wenn ein angemeldetes Element beim Parser vorbeikommt, meldet er dies in Form eines Ereignisses, das für die Verarbeitung abgefangen werden kann.


Galileo Computing

13.3.1 Das Document Object Model (DOM)downtop

DOM ist eine Entwicklung vom W3C und wird von vielen Programmiersprachen unterstützt. Das Standard-DOM ist so konzipiert, dass es unabhängig von einer Programmiersprache ist und eine strikte Hierarchie erzeugt. DOM definiert eine Reihe von Schnittstellen, die durch konkrete Programmiersprachen implementiert werden.


Galileo Computing

13.3.2 Simple API for XML Parsing (SAX)downtop

SAX ist zum schnellen Verarbeiten der Daten von David Megginson als Public-Domain entworfen worden. SAX ist im Gegensatz zu DOM nicht so speicherhungrig, weil das XML-Dokument nicht vollständig im Speicher abgelegt ist, und daher auch für sehr große Dokumente geeignet. Da SAX auf einem Ereignismodell basiert, wird die XML-Datei wie ein Datenstrom gelesen, und für erkannte Elemente wird ein Ereignis ausgelöst. Dies ist aber mit dem Nachteil verbunden, dass wahlfreier Zugriff auf ein einzelnes Element nicht ohne Zwischenspeicherung möglich ist.

Klassische Anwendungen für SAX sind:

gp Darstellung der XML-Datei in einem Browser
gp Suche nach bestimmten Inhalten
gp Einlesen von XML-Dateien, um eine eigene Datenstruktur aufzubauen

Für einige Anwendungen ist es erforderlich, die gesamte XML-Struktur im Speicher zu verarbeiten. Für diese Fälle ist eine Struktur, wie sie DOM bietet, notwendig:

gp Sortierung der Struktur oder einer Teilstruktur der XML-Datei
gp Auflösen von Referenzen zwischen einzelnen XML-Elementen
gp Interaktives Arbeiten mit der XML-Datei

Ob in eigenen Programmen DOM oder SAX eingesetzt wird, ist von Fall zu Fall unterschiedlich. In manchen Fällen ist dies auch Geschmackssache, doch ärgerlicherweise unterscheidet sich das Programmiermodell, sodass eine Umstellung nicht so angenehm ist. Wünschenswert ist eine API, die einen unabhängigen Zugriff auf XML-Daten anbietet.


Galileo Computing

13.3.3 Java Document Object Model (JDOM)toptop

JDOM ist eine einfache Möglichkeit, XML-Dokumente leicht und effizient mit einer schönen Java-API zu nutzen. Im Gegensatz zu SAX und DOM, die unabhängig von einer Programmiersprache sind, wurde JDOM speziell für Java entwickelt. Durch die Optimierung der API auf Java ist eine wesentlich bessere Performance und eine bessere Speichernutzung als bei DOM möglich.





Copyright (c) Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de