DOM (Document Object Model) Multimedia Seminar, WS 01/02, Michael Bromm Inhalt 1. 2. 3. 4. 5. 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) • – JDOM (Java) • – www.jdom.org JAXP (Java) • – www.apache.org ... java.sun.com 5. Verwandte Technologien • • XML SAX – • Xpath – • Eventgesteuerte Parser – API für XML ... Zugriffssprache auf XML – Dokumente DOM – Document Object Model Fragen ?