280 likes | 405 Views
DOM (Document Object Model). Multimedia Seminar, WS 01/02, Michael Bromm. Inhalt. Allgemein Daten in „DOM - Form“ Standards Verfügbare APIs Verwandte Technologien. 1. Allgemein. Was ist DOM? Document Object Model (Objektorientiertes Dokumentenmodell) Hat zwei Bedeutungen
E N D
DOM(Document Object Model) Multimedia Seminar, WS 01/02, Michael Bromm
Inhalt • Allgemein • Daten in „DOM - Form“ • Standards • Verfügbare APIs • Verwandte Technologien
1. Allgemein • Was ist DOM? • Document Object Model (Objektorientiertes Dokumentenmodell) • Hat zwei Bedeutungen • Logische Modell zur Darstellung von Daten • Schnittstellen zum Zugriff auf das Modell • Navigieren, Lesen/Schreiben, Hinzufügen und Entfernen von Daten
1. Allgemein • Informationen im DOM • Logische Struktur für XML – Dokumente • Jede Form von Informationen die mit XML strukturiert werden können • HTML ist eine gültige XML - Sprache
1. Allgemein • XML – Grundlagen (1/4) • Extensible Markup Language • Vom W3C definierte Teilmenge von SGML • Metasprache zur Definition von Sprachen • Strukturiert Informationen in Textdateien • Strukturierung durch Maßgeschneiderte Menge von Tags
1. Allgemein • XML – Grundlagen (2/4) • Tag: <name>Heinz</name> • Kurzform: <name/> • Attribute: <person id=„0815“/> • Schachtelung: <person id=„0815“> <name>Heinz</name> </person> • Tags und Attribute werden frei definiert
1. Allgemein • XML – Grundlagen (3/4) • Wenige allgemeine Regeln • Hat genau eine Wurzel • Wohlgeformt (well formed): • Alle Tags geschlossen die geöffnet wurden • Verschachtelung in korrekter Reihenfolge • Gültig (valid): • Eine korrekte DTD (Document Type Definition) • Dokument entspricht der DTD
1. Allgemein • XML – Grundlagen (4/4) • Beispiel: Telefonbucheintrag <?xml version="1.0" encoding=„UTF-8"?> <person> <name>Becker</name> <vorname>Heinz</vorname> <tel>12345/98765</tel> </person>
2. Daten in „DOM – Form“ • Das Modell (1/4) • Hierarchische Struktur von Elementen • Ein Wurzelelement mit beliebig vielen Nachfolgern • Jeder Nachfolger kann selbst beliebig viele Nachfolger haben • Struktur ist ein Baum
2. Daten in „DOM - Form“ • Das Modell (2/4)
2. Daten in „DOM - Form“ • Das Modell (3/4) • Baum entspricht der Struktur eines XML – Dokumentes • Jedes Element entspricht einem Tag • Jeder Knoten enthält die Information selbst und evtl. die Attribute des Tags
2. Daten in „DOM - Form“ • Das Modell (4/4) • Beispiel: HTML - Dokument
2. Daten in „DOM - Form“ • Daten Strukturieren (1/4) • DOM ermöglicht Erstellung von neuen Dokumenten • Informationen können aus verschiedenen Quellen stammen • Informationen werden zur Laufzeit in verschiedenen Formen gespeichert
2. Daten in „DOM - Form“ • Daten Strukturieren (2/4) • Abbildung der internen Strukturen auf das DOM notwendig • Strukturierung der Daten notwendig • Erkennen von einzelnen Elementen • Logische Gruppierung von Elementen zu Gruppen
2. Daten in „DOM - Form“ • Daten Strukturieren (3/4)
2. Daten in „DOM - Form“ • Daten Strukturieren (4/4)
3. Standards • W3C (1/2) • Empfehlung des W3C • V.1.0 – 1. August 1998 • V.2.0 – 13. November 2000 • an V.3.0 wird gearbeitet • W3C eingeschaltet um einheitliche Sprachnorm für JavaScript zu entwickeln • Unterschiedlichen Implementierungen von JavaScript durch Netscape und Microsoft
3. Standards • W3C (2/2) • Probleme bei der Entwicklung von Skripten • DOM nicht nur für HTML ergänzende Scriptsprachen konzipiert, sondern für alle XML gerechten Auszeichnungssprachen • Durch Gegebenheiten und Verbreitung von HTML wurden „DOM Core“ und „DOM HTML“ entwickelt
3. Standards • DOM Core (1/4) • Definiert eine Menge von Schnittstellen • Da DOM den objektorientierten Ansatz verfolgt kann von abstrakten Klassen gesprochen werden • DOM legt Klassenstruktur und Methoden fest • Umsetzung der Schnittstellen in Java oder C++ sollte relativ leicht sein
3. Standards • DOM Core (2/4)
3. Standards • DOM Core (3/4) • Node ist die Basisklasse für alle Knotentypen • Methoden von Node: • getNodeType() • getChildNodes() • getAttributes() • ... • Definiert Methoden zum Umgang mit Knoten
3. Standards • DOM Core (4/4) • Document stellt das gesamte Dokument dar • Enthält Informationen über das Dokument • Enthält Methoden zum Erstellen von Knoten • createElement(String tagName) • createAttribute(String name) • ... • Vorgehensweise wichtig da Knoten nur im Kontext des Dokumentes gültig sind
3. Standards • DOM HTML (1/3) • Erweiterung basierend auf der DOM Core Empfehlung • Für HTML – Dokumente zugeschnitten • Erleichtert Zugriff auf HTML – Dokumente • Microsoft und Netscape versprechen seit langem DOM – HTML zu implementieren • Beide Implementierungen sind unterschiedlich und unvollständig
3. Standards • DOM HTML (2/3)
3. Standards • DOM HTML (3/3) • Wichtigsten Elemente sind von DOM Core abgeleitet • HTMLDocument enthält zusätzliche Informationen über das HTML – Dokument • String title • String URL • ... • Erlaubt direkten Zugriff auf Bilder, Applets, Formulare und andere Elemente
4. Verfügbare API´s • API´s • Xerces Apache Projekt (Java) • www.apache.org • JDOM (Java) • www.jdom.org • JAXP (Java) • java.sun.com • ...
5. Verwandte Technologien • XML • SAX • Eventgesteuerte Parser – API für XML • Xpath • Zugriffssprache auf XML – Dokumente • ...
DOM – Document Object Model Fragen ?