Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

Java ist auch eine Insel von Christian Ullenboom
Programmieren für die Java 2-Plattform in der Version 5 (Tiger-Release)
Buch: Java ist auch eine Insel
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.4.12 Kurzeinführung in XPath
  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 Schnittstellen von SAX
    gp 13.6.2 SAX-Parser erzeugen
    gp 13.6.3 Wichtigsten Methoden der Schnittstelle ContentHandler
  gp 13.7 HTML-Dokumenten mit JTidy und cyberneko einlesen


Galileo Computing

13.3 Die Java-APIs für XMdowntop

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 (DOMdowntop

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 (SAXdowntop

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 (JDOMtoptop

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. Während das Original-DOM keine Rücksicht auf die Java-Datenstrukturen nimmt, nutzt JDOM konsequent die Collection-API. Auch ermöglicht JDOM eine etwas bessere Performance und eine bessere Speichernutzung als beim Original-DOM.





Copyright © 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