Zum Inhalt springen

Diskussion:Document Object Model

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 13. August 2005 um 10:19 Uhr durch Exilfranke (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Es bezeichnet eine Datenstruktur, die von der OMG (Object Management Group) definiert wurde, insbesondere zur Darstellung von XML-Daten in Programmen. -- Ist der Satz korrekt? -- sk 08:22, 10. Dez 2003 (CET)

Eigene Überschrift für die Implementationen

Ich wäre dafür die Implementationen unter einer eigene Überschrift aufzuführen. Außerdem sollte auch ein Link zur jeweiligen Sprache in der Wikipedia führen. --Rbb 13:00, 22. Jun 2004 (CEST)

Meiner Ansicht nach sollten Wikipedia Artikel auch für Laien nachvollziehbar und einfach verständlich sein. Diese Vorausetzungen erfüllt dieser Artikel nicht. Vielleicht kann man doch ein paar Zeilen mehr verlieren und dafür die Anzahl an Weblinks verringern. Rec 22:27, 15. Sep 2004 (CEST)

:schließe mich dieser Meinung an. Dieser Artikel bedürfte dringend einer Vereinfachung --132.180.48.160 11:12, 8. Aug 2005 (CEST)

Entwurf Überarbeitung

bin noch nicht fertig und speichere das Zwischenergebnis erst mal hier:

Das Document Object Model (DOM) ist eine Programmierschnittstelle (API) für den Zugriff auf auf HTML- oder XML-Dokumente. Im Sinne der objektorientierten Programmierung besteht es aus einem Satz von Klassen zusammen mit deren Methoden und Klassenvariablen. Es erlaubt Softwareprogrammen und Skripten dynamisch den Inhalt, die Struktur und das Layout eines Dokuments zu verändern.

Beispiel

Beispiel anhand einer HTML-Datei

<TABLE>
  <TBODY>
    <TR>
      <TD>Name</TD>
      <TD>Vorname</TD>
    </TR>
    <TR>
      <TD>Donald</TD>
      <TD>Duck</TD> 
    </TR>
  </TBODY>
<TABLE>

DOM repräsentiert dieses Dokument in der folgenden Baumstruktur:

DOM-Repräsentation der HTML-Datei

                [TABLE]
                   |
                   v
                [TBODY]
               /       \
              v         v
            [TR]       [TR]
           /   |       |   \
          v    v       v    v
        [TD]  [TD]    [TD]   [TD]
        /      |       |       \
       v       v       v        v
     [Name] [Vorname] [Donald] [Duck]


An diesem Beispiel läßt sich der prinzipielle Aufbau einer des DOM Objektmodells diskutieren:

In DOM werden Dokumente logisch wie ein Stammbaum dargestellt: Knoten (Nodes) stehen über "Verwandschaftsbeziehungen" zueinander in Verbindung.

Arten von Beziehungen

Die vorliegende Struktur wird im DOM Objektmodell durch die folgenden Beziehungen charakterisiert:

  • Wurzelknoten [TABLE] hat als Kind (Child) den Knoten [TBODY]
  • [TABLE] ist umgekehrt ein Elternteil (Parent) von [TBODY]
  • Knoten mit gemeinsamem Elternteil (z.B. die beiden Knoten [TR]) werden Geschwister (Sibling) genannt

Ausgehende vom Wurzelknoten ist jeder andere Knoten über diese Verwandschaftsbeziehungen erreichbar.

Arten von Knoten

Die wichtigsten Knoten-Objekte im Objektmodell DOM sind:

  • Dokument (DOCUMENT_NODE) stellt die gesamte Baumstruktur dar,
  • Fragment (DOCUMENT_FRAGMENT_NODE) stellt eine Teil der Baumstruktur dar,
  • Element (ELEMENT_NODE) entspricht exakt einem Element in HTML oder XML,
  • Attribut (ATTRIBUTE_NODE) entspricht exakt einem Element in HTML oder XML,
  • Text (TEXT_NODE) stellt den textuellen Inhalt eines Elements oder Attributs dar.

Objektorientierter Aufbau von DOM

DOM definiert in der Sprache der Objektorientierten Programmierung Interfaces für die einzelnen Objekte. Für jedes Objekt ist die Struktur, bestehend aus Variablen und Methoden des Objekts, festgelegt.

Insbesondere existieren in DOM Zugriffsmethoden für

  • die Erzeugung einer DOM-Struktur aus einem gegebenen Dokument (die Instantiierung des Dokument-Objekts)
  • die Navigation zwischen den Knoten eines Dokuments
  • das Auslesen der Konteninformation
  • die Erzeugung, Modifikation und Löschung einzelner Knoten

Die Auswertung und Manipulation eines Dokuments kann somit in DOM vollständig auf die Anwendung objektorientierter Verfahren abgebildet werden.

Einfache Beispiele:

  • Methode getParent liefert für Textknoten Donald den Elementknoten [TD]
  • Methode getNextSibling liefert für Textknoten Donald den Textknoten [Duck]
  • Methode hasChildNoides liefert für [Donald] "false" - der Knoten hat keine Kinder

Das Document Object Model wurde geschaffen, um die Möglichkeiten der Internetprogrammierung mit verschiedenen Browsern und Scriptsprachen zu vereinheitlichen.

Es existieren mehrere DOM Levels:

Level 0
Dieses Level wurde nie formal spezifiziert und bezeichnet die mittels JS zugreifbaren Funktionen und Objekte, die von Webbrowsern wie Internet Explorer und Netscape Navigator vor der Standardisierung des DOMs implementiert wurden.
Level 1
Navigierung des DOM-Baumes und Manipulation der Elemente, inklusive des Einfügens neuer Elemente und des Setzens von Attributen
Level 2
Erweiterung des Levels 1 um XML Namespace-Unterstützung, Views und Events.
Level 3
Noch nicht fertiggestellt. Weitergehende Erweiterung der früheren Levels.

Levels 1–3 wurden und werden vom World Wide Web Consortium standardisiert.

Siehe auch: SAX, JDOM, Benutzeragent Vorlage:Stub

en:Document Object Model es:Document Object Model fr:Document Object Model it:DOM ja:Document Object Model ko:문서 객체 모델 nl:Document Object Model pl:Obiektowy model dokumentu pt:DOM zh:文档对象模型