JDOM
# JDOM

JDOM ist eine Java-Bibliothek für die Manipulation von XML-Daten. Sie ist eine Alternative und Ergänzung zu der offiziellen Java-API, wurde von Jason Hunter und Brett McLaughlin entwickelt und ist inzwischen eine implementierte API zur Arbeit mit XML in Java. Aus markenrechtlichen Gründen handelt es sich nicht um ein Akronym. JDOM integriert die Vorteile und APIs von SAX und DOM in einer Java-Klasse.

Ähnlich wie beim Document Object Model (Abk. DOM) wird ein XML-Dokument als Baum im Hauptspeicher repräsentiert, jedoch wurde JDOM speziell für Java entwickelt. Daher werden Java-Klassen verwendet – beispielsweise wird bei JDOM ein XML-Knoten nicht als „node“, sondern durch eine spezifische Java-Klasse repräsentiert.

JDOM bietet die Möglichkeit, den JDOM-Baum als Textdokument („XMLOutputter“, also als XML-Dokument) auszugeben, was nicht zum SAX-Standard und bis inkl. zum Level 2 auch nicht zum DOM gehört. Des Weiteren kann der „SAXOutputter“ das Dokument in Form von SAX-Ereignissen ausgeben, wie sie beim Parsen des Dokuments durch SAX auch erzeugt werden würden oder den JDOM-Baum in einen DOM-Baum konvertieren („DOM-Outputter“).

## JDOM-Klassen

### Document

Das ist das Wurzelobjekt (und somit der Einstiegspunkt zur Navigation) des JDOM-Baumes, das das Wurzelelement, den Dokumenttyp und Verarbeitungsanweisungen enthält.

### Element

Diese Klasse repräsentiert die Informationen für Elemente (beispielsweise das Elternelement („parent“), den Elementnamen („name“) und eine Liste der Attribute („attributes“)).

### Comment

Kommentare („text“) mit dem den Kommentar enthaltenen Element („parent“).

### CDATA

Compilerspezifische Daten.

### Namespace

Namespaces für Elemente und Attribute zu definieren zu können.

### DocType

Beherbergt die DocType Deklaration für den Kopf der XML Daten.

### Text

Zeichen basierender Inhalt.

## Weitere Java DOM-Implementierungen

* dom4j ist eine vielseitige Programmierschnittstelle, die ein erweitertes und umfangreiches Set von Verarbeitungsfunktionen zur Verfügung stellt.
* XOM (XML Object Model) ist eine schnelle Programmierschnittstelle mit wenig Speicherbedarf.
* Apache Crimson ist ein DOM Parser der Apache Software Foundation
