# JDOM vs. DOM, Schnittstellen



## Karl Der Kahrle (18. Nov 2008)

Hallo,
im Internet heißt es:
"JDOM definiert im Gegensatz zu DOM konkrete Klassen und keine Schnittstellen."
Wie ist das zu verstehen?
Wenn ich mit DOM ein Dokument parse, erhalte ich doch eine Liste von Objekten der Klasse "Node".
Und jede "Node" ist doch eine Instanz einer Klasse.  ???:L 

Danke,
Karl


----------



## Karl Der Kahrle (19. Nov 2008)

Um die Frage etwas zu präzesieren:
Kann mir jemand Folgenden Satz erläutern: Ein XML-Knoten wird (in JDOM) nicht als „node“, sondern durch eine spezifische Java-Klasse repräsentiert.

node ist bei DOM doch eine Schnittstelle, aber letztlich habe ich ja bei DOM zugriff auf die nodes aus Dokuments, also müussen ja irgendwo Instanzen von Node implementierenden Klassen instnaziert werden.
Wo liegt da jetzt der Nachteil von DOM?

Vielen dank,
Karl


----------



## Murray (19. Nov 2008)

Die Tatsache, dass (W3C-)DOM im Gegensatz zu JDOM keine konkreten Klassen, sondern lediglich Interfaces definiert, würde ich nicht als Nachteil sehen.
Was man als Vorteil von JDOM sehen kann (und was letztendlich auch die Motivation für die Entwicklung war),  sind die APIs, die einfach besser zu Java passen. So liefert z.B. Element#getChildren eine java.util.List, die man - wie andere Java-Listen auch - iterieren kann. Beim (W3C-)DOM gibt es statt dessen einen eigenen Typ NodeList.


----------



## Karl Der Kahrle (19. Nov 2008)

Murray hat gesagt.:
			
		

> Die Tatsache, dass (W3C-)DOM im Gegensatz zu JDOM keine konkreten Klassen, sondern lediglich Interfaces definiert, würde ich nicht als Nachteil sehen.


Wie ist das gemeint mit "definiert lediglich Interfaces"? Wo kommen denn dann meine Node-Instanzen her? Irgendwo müßen doch dann auch "richtige" Klassen definiert sein?

Denk,
Karl


----------



## Murray (19. Nov 2008)

Natürlich, der XML-Parser, der ein (W3C)Document zurückliefert, bringt intern jede Menge Klassen mit, die die entsprechenden Interfaces implementieren. Aber: das ist ein Implementierungsdetail, was den Verwender des Parsers nicht zu interessieren hat.


----------



## Karl Der Kahrle (20. Nov 2008)

Ah, ok. Vielen Dank!

Gruß,
Karl


----------

