Das DOM Core Modul



Seminar XML | DOM - Das XML Document Object Model | Die Bestandteile des DOM | nächstes Unterkapitel : DOM HTML

grundlegende Datentypen:

Das DOM-Struktur-Model:

  • DOMImplementation

  • grundlegende Datentypen:

    DOMString :

    Um Plattformunabhängigkeit zu gewähleisten, definiert das DOM diesen Datentyp.
    Ein DOMString ist eine Folge von 16bit-Einheiten. (unsigned short)
    Implemenationen müssen bei der codierung eines DOMStrings das UTF-16 Format benutzen.
    Bei Stringvergleichen geht DOM davon aus, das der DOMbuilder die Strings bereits normalisiert hat.
    Ein String-Vergleich wird nur durch Vergleich der einzelnen 16-bit Einheiten realisiert.
     

    DOMTimeStamp :

    Dieser Datentyp dient zur Aufnahme von Zeitdaten. DOMTimeStamp zählt in Millisekunden.
    Es wird ein unsigned long zu Grunde gelegt.
     
     
     

    Das DOM-Struktur-Model:

    DOMImplementation :

    Das DOMImplementation Interface definiert einige Methoden, die unabhängig von allen anderen Objekten des DOM sind. Dies sind im einzelnen Farbrikmethoden zur Erzuegung von DocumentType-Objekten und von Document-Objekten, welches ein neues XML-Dokument darstellt.

    Node :

    Das Node-Interface ist das allgemeinste Interface im DOM-Struktur-Modell.  Es stellt einen einzelnen Knoten in einer DOM-Struktur dar.
    Das DOM sieht prinzipiell zwei unterschiedliche Betrachtungsweisen einer Dokument-Struktur vor. Die erste verfolgt den objekt-orientierten Ansatz. Hierbei werden alle Tags in, ihrer Funktion entsprechende,  Objekte gekapselt. Dies erfordert jedoch heufiges casting, welches in Sprachen wie z.B. Java,  sehr unperformant sein kann. Die zweite Sichtweise geht deshalb davon aus, das alle Objekte vom Typ Node sind. Damit dennoch alle Zugriffe auf alle Objekte vollständig möglich werden, musste das DOM einige Redundanzen in Kauf nehmen.
    Das Nodes-Interface implementiert die vereinfachte "flache" Sichtweise durch die drei Attribute "nodeName", "nodeValue" und "attributes". Hat zum Beispiel ein Objekt keine Attribute, würde "attributes" den Wert "null" zurück geben.
    Für den Objekt-Orientierten Ansatzt bietet das nodes-Interface Methoden zum Einfügen, Ersetzen, Löschen und Anhängen von Kind-Objekten.

    Alle jetzt folgenden Interfaces, bis auf Text und CDATASection leiten sich von "node" ab !

    Document :

    mögliche Kind-Objekte :
    Element (max. 1), ProcessingInstruction, Comment, DocumentType(max. 1)

    Funktion :
    Das Document-Interace representiert das gesamte XML, bzw. HTML Dokument und bietet den primaren Zugang zu den Dokumentdaten.
    Es enthält Fabrikmethoden für elements, comments, processing instructions und text nodes.

    DocumentFragment :

    mögliche Kind-Objekte :
    Element (max. 1), ProcessingInstruction, Comment, Text, CDATA-Section, EntityReference

    Funktion:
    DocumentFragment ist ein Interface für ein  minimal Dokument. Es darf nicht ``well-formed`` XML dokumente enthalten. DokumentFragment kann zum Beispiel dazu eingesett werden, um meherer Teilbäume in ein Hauptdokument einzufügen.

    DocumentType :

    mögliche Kind-Objekte : eine Kind-Objekte

    Funktion : DocumentType bietet zugriff auf die Daten einer DTD.  Dazu gehören Attribute für Name der DTD, interne externe Entitys und Notations.

    EntityReference :

    mögliche Kind-Objekte :
    Element (max. 1), ProcessingInstruction, Comment,  Text, CDATA-Section, EntityReference

    Funktion :
    Das Interface-EnityReference bietet Zugriff auf EntityReferences. Es ist der DOM Implementation überlassen, ob eine EnityReference schon beim Aufbau der DOM-Struktur , oder erst bei Zugriff aufgelöst wird. Folglich kommen bei Implementationen, die schon bei dem Aufbau der DOM-Struktur EntityReferences auflösen, im DOM-Baum keine EntityReferences vor.

    Element :

    mögliche Kind-Objekte : Element (max. 1), Comment,  Text, CDATA-Section, EntityReference

    Funktion :
    Element ist ein Interace für ein einzelnes HTML/XML-Tag. Es bietet Zugriffsmethoden auf die Attribute des Tags und den ihm untergeordneten Elemente. Ab DOM-Level-2 gibt es die Möglichkeit das bei der qualifizierung von Element Namen Namespaces berücksichtigt werden.

    Attr :

    mögliche Kind-Objekte :  Text,  EntityReference

    Funktion :
    Dieses Interface bietet Zugriff auf die Daten eines Attributes. Attr-Objekte können nicht Kind-Elemente in einer DOM-Struktur sein. Aus diesem Grund sind die Zeiger für parentNode, nextSibling, previousSibling immer null. Dieses Vorgehen wurde vom W3C aus Effiziensgründen bei der Implementierung gewählt.

    ProcessingInstruction :

    mögliche Kind-Objekte : keine Kind-Objekte

    Funktion : beschreibt die Schnittstelle zu einem ProcessingInstruction Element. Das Interface bietet Zugriff auf das target- und das data-feld einer PI.

    Comment :

    mögliche Kind-Objekte : keine Kind-Objekte

    Funktion : Dieses Interface ermöglicht den Zugriff auf den Text eines in Kommentar-Elementes.

    CharacterData :

    mögliche Kind-Objekte : Text, CDATASection

    Funktion : Das CharacterData  Interface bietet Zugriff auf Text-Daten im DOM. Dabei liegt immer ein DOMString zugrunde. Es werden Methoden zum Anfügen, Einfügen, löschen und Ersetzen definiert. CharacterData wird nie direkt benutzt. Allerdings leiten sich Text und CDATASection von CharacterData ab.

    Text :

    mögliche Kind-Objekte : keine Kind-Objekte

    Funktion : Schnittstelle zu einem Textelement. Enthält der Text weitere Markups, werden auch diese geparst und als Kind-Objekte dem Text-Objekt untergeordnet.

    CDATASection :

    mögliche Kind-Objekte : keine Kind-Objekte

    Funktion : CDATASection Objekte sind weitestgehend mit Text-Objekten vergelichbar. Im Gegensatz zu Text-Objekten wird der Inhalt eines CDATASection-Objektes nicht geparst. CDATASections können nur in XML-Dokumenten vorkommen.

    Entity :

    mögliche Kind-Objekte : Element (max. 1), ProcessingInstruction, Comment,  Text, CDATA-Section, EntityReference

    Funktion : Entity ist ein Interface für XML-Entitys. Ein Entitiy-Node hat keine Übergeordneten Nodes. Es bietet Zugriff auf "notationName", "publicID" und "systemID".

    Notation :

    mögliche Kind-Objekte : keine Kind-Objekte

    Funktion : das Notation-Interface  bietet Zugriff auf ein notation-element der DTD.


    Seminar XML | DOM - Das XML Document Object Model | Die Bestandteile des DOM | nächstes Unterkapitel : DOM HTML