www.wikidata.de-de.nina.az
Das Document Object Model DOM engl fur Dokumenten Objekt Modell ist eine Spezifikation einer Programmierschnittstelle welche HTML oder XML Dokumente als eine Baumstruktur darstellt in der jeder Knoten ein Objekt ist welches einen Teil des Dokumentes reprasentiert z B einen Absatz eine Uberschrift ein Video oder etwa eine Tabellenzelle Die Schnittstelle ist plattform und programmiersprachenunabhangig und erlaubt damit standardisiert die Struktur und das Layout eines Dokumentes zu verandern Im Webbrowser bildet dies einen wichtigen Baustein fur dynamische Webseiten DOM Knotenbaum einer fiktiven WebseiteDas DOM wird vom World Wide Web Consortium definiert Eine Implementierung die der DOM Spezifikation genugt besteht im Sinne der objektorientierten Programmierung aus einem Satz von Klassen zusammen mit deren Methoden und Attributen Inhaltsverzeichnis 1 Benennung 2 Geschichte 3 Grundlagen anhand eines Beispiels 3 1 Arten von Beziehungen 3 2 Arten von Knoten 3 3 Verarbeitung eines Dokuments 4 Standardisierung 4 1 DOM Level 0 4 2 DOM Level 1 4 3 DOM Level 2 4 4 DOM Level 3 5 Siehe auch 6 Weblinks 7 EinzelnachweiseBenennung BearbeitenBei der Bezeichnung Document Object Model handelt es sich eigentlich um eine Fehlbenennung da DOM nicht als Modell sondern als Schnittstelle Interface fur den Datenzugriff definiert ist und vom W3C auch so bezeichnet wird Die Bezeichnung als Modell betont hingegen das der Schnittstelle zugrundeliegende wohldefinierte Objektmodell dessen Gultigkeit Voraussetzung fur die Gultigkeit der darauf aufgebauten Schnittstelle ist Auf einer hoheren Abstraktionsebene ist auch eine Schnittstelle ein Modell namlich fur die Art und Weise auf Objekte oder Daten zuzugreifen Geschichte BearbeitenDOM ist ursprunglich unter dem Einfluss von mindestens zwei Entwicklungen entstanden die die Computerwelt in der jungsten Vergangenheit massgeblich pragten Beiden liegt die Notwendigkeit zugrunde auf die strukturierten Daten in HTML und XML Dokumenten einfach und einheitlich zugreifen zu konnen Mitte der 1990er Jahre als das World Wide Web an Popularitat zunahm wurde die Skriptsprache JavaScript erfunden und gangige Webbrowser enthielten seitdem Interpreter die solche Scripte ausfuhren JavaScript definierte rudimentare Moglichkeiten zum Zugriff auf das HTML Dokument und zur Ereignisbehandlung Spater erfanden verschiedene Browserhersteller unterschiedliche Modelle fur dynamisches HTML DHTML die eine umfassendere Anderung der Struktur und des Aussehens des Dokuments ermoglichten wahrend das Dokument im Browser angezeigt wird Diese Unterschiede machten allerdings die Arbeit fur Webentwickler welche dynamisches HTML nutzen wollten zu einer ausserst muhsamen Angelegenheit da sie oft praktisch gezwungen waren fur jeden zu unterstutzenden Browser eine eigene Version zu schreiben 1 Die ersten DOM Standards des W3C sind daher Versuche die verschiedenen proprietaren JavaScript und DHTML Techniken die wahrend der Zeit der Browserkriege entstanden zusammenzufuhren zu standardisieren und letztlich abzulosen Dies ist so weit gelungen dass DOM heutzutage eine zentrale Bedeutung bei der JavaScript Programmierung einnimmt Gleichzeitig entstand XML als allgemeines Austauschformat zur menschenlesbaren Darstellung von strukturierten Daten das an den Erfolg von HTML anknupfte Zur Verarbeitung von XML Dokumenten war eine verstandliche leistungsfahige und programmiersprachenubergreifende Schnittstelle notig DOM bietet eine solche und definiert daruber hinaus zusatzliche Schnittstellen fur einen komfortablen Umgang mit XML Dokumenten Grundlagen anhand eines Beispiels BearbeitenFolgender HTML Code definiert eine Tabelle mit dem Element table und verschiedenen Unterelementen lt table gt lt thead gt lt tr gt lt th gt Vorname lt th gt lt th gt Name lt th gt lt tr gt lt thead gt lt tbody gt lt tr gt lt td gt Donald lt td gt lt td gt Duck lt td gt lt tr gt lt tbody gt lt table gt So sieht es im Browser aus nbsp Das DOM reprasentiert das table Element und dessen Unterelemente in der folgenden Baumstruktur nbsp An diesem Beispiel lasst sich der prinzipielle Aufbau des Objektmodells diskutieren Dokumente werden logisch wie ein Stammbaum dargestellt Knoten nodes stehen uber Verwandtschaftsbeziehungen zueinander in Verbindung Arten von Beziehungen Bearbeiten Die vorliegende Struktur wird im Objektmodell durch die folgenden Beziehungen charakterisiert Der Wurzelknoten root table hat als Kinder children die Elementknoten thead und tbody Der table Elementknoten ist umgekehrt ein Elternteil parent von thead und tbody Knoten mit gemeinsamem Elternteil zum Beispiel die beiden th Elementknoten werden Geschwister siblings genannt Ausgehend von einem beliebigen Knoten ist jeder andere Knoten uber diese Verwandtschaftsbeziehungen erreichbar Arten von Knoten Bearbeiten Die wichtigsten Knotentypen in DOM sind Ein Dokumentknoten stellt die gesamte Baumstruktur dar Ein Dokumentfragmentknoten stellt einen Teil der Baumstruktur dar Ein Elementknoten entspricht exakt einem Element in HTML oder XML Ein Attributknoten entspricht exakt einem Attribut in HTML oder XML Ein Textknoten stellt den Textinhalt eines Elements dar Attributknoten sind eine besondere Knotenart denn sie kommen nicht als Knoten in der Baumstruktur vor die vor allem durch Elementknoten gebildet wird Attributknoten sind demnach keine Kinder von Elementknoten sondern Eigenschaften von ihnen Verarbeitung eines Dokuments Bearbeiten Im ersten Schritt wird ein bestehendes Dokument durch das Programm eingelesen und ein Dokument Objekt erzeugt Anhand dieses Objekts kann mittels der Methoden des API auf die Inhalte Struktur und Darstellung zugegriffen werden Insbesondere erlaubt DOM die Navigation zwischen den einzelnen Knoten eines Dokuments das Erzeugen Verschieben und Loschen von Knoten sowie das Auslesen Andern und Loschen von Textinhalten Am Ende der Verarbeitung kann aus dem Dokument Objekt durch so genannte Serialisierung ein neues XML oder HTML Dokument generiert werden Standardisierung Bearbeiten nbsp WHATWG DOMDOM ist seit 1998 ein Standard des W3C und wurde seitdem mehrfach aktualisiert und erweitert Es existieren mehrere Versionen Levels jeweils mit verschiedenen Modulen DOM Level 0 Bearbeiten Dieses Level wurde nie formal spezifiziert Level 0 bezeichnet die mittels JavaScript nutzbaren Techniken zum Zugriff auf HTML Dokumente Diese wurden von Webbrowsern wie Internet Explorer und Netscape Navigator vor der Standardisierung von DOM eingefuhrt DOM Level 1 Bearbeiten Veroffentlicht Ende 1998 DOM Core DOM Kern definiert das Bewegen im DOM Baum die Manipulation der Knoten inklusive des Einfugens neuer Elemente und des Setzens von Attributen DOM HTML ist die Erweiterung zum Zugriff auf HTML Dokumente Es standardisiert und vervollstandigt die bereits verbreitete Praxis die auf den JavaScript Spezifikationen von Netscape bzw Microsoft JScript basiert DOM Level 2 Bearbeiten Veroffentlicht Ende 2000 DOM Core u a Erweiterung um XML Namensraum Unterstutzung DOM HTML u a Ausweitung auf XHTML Dokumente Anpassung an DOM 2 Core DOM Style und DOM CSS ermoglichen das dynamische Auslesen Hinzufugen und Andern der Formatierung bzw des Layouts des Dokuments uber Stylesheets insbesondere Cascading Style Sheets CSS DOM Views erlaubt den Zugriff auf Informationen konkreter Wiedergabearten des Dokuments zum Beispiel der grafischen Darstellung im Webbrowser Das wird vor allem zusammen mit DOM CSS benutzt um die tatsachlichen CSS Eigenschaftswerte von gewissen Elementen in Erfahrung zu bringen z B Welche Hintergrundfarbe hat diese Uberschrift DOM Events standardisiert die Verarbeitung von Ereignissen im Dokument zum Beispiel Benutzeraktionen Wird vor allem im Zusammenhang mit JavaScript bei der Darstellung von HTML Dokumenten in Webbrowsern verwendet Angelehnt an die Modelle der Ereignis Behandlung des Netscape Navigators und des Internet Explorers fur HTML Dokumente DOM Traversal und DOM Range Durchlaufen des Knotenbaums anhand von bestimmten Auswahlkriterien Arbeiten mit Bereichen im Dokument die bestimmte Elemente und Textknoten umfassenDOM Level 3 Bearbeiten Veroffentlicht April 2004 DOM 3 Core umfassende Erweiterung u a verbesserte Ausnahmebehandlung und Umgang mit Zeichenkodierungen DOM 3 Load and Save ermoglicht die Serialisierung von Dokumenten oder Dokumentteilen sowie das Parsen von XML Dokumenten in Zeichenketten in Dokument Objekte Zudem konnen XML Dokumente uber HTTP versendet und abgerufen werden wie es mit der bekannteren XMLHttpRequest Technik moglich ist DOM 3 XPath erlaubt das Auswahlen von Knoten anhand von XPath Ausdrucken DOM 3 Events erweitert DOM 2 Events u a um Tastatur Ereignisse DOM 3 Validation erlaubt das Prufen ob nach einer dynamischen Anderung Hinzufugen oder Entfernen von Knoten das DOM Dokument valide bleibt DOM 3 Views and Formatting erlaubt es dynamisch auf den Inhalt Struktur und Style zuzugreifen und diese zu andern DOM 3 Abstract SchemasSiehe auch BearbeitenSimple API for XML SAX Xerces JDOM dom4jWeblinks BearbeitenWebsite beim W3C englisch W3C Ubersetzung zu Testsuiten deutsch Mario Jeckle Skript zur Vorlesung XML DOM DOM Einfuhrung bei data2type deutsch DOM Referenz bei data2type deutsch Folienvortrag Sammlung von Links zu Fachartikeln englisch Praktisches Anwendungsbeispiel DOM mit PHP Erstellung eines validen RSS Feed mit DOM und PHPEinzelnachweise Bearbeiten JavaScript CRE146 Podcast ab 01 00 45 Normdaten Sachbegriff GND 4680714 7 lobid OGND AKS V DStandards des World Wide Web Consortiums W3C Empfehlungen ActivityPub ARIA Canonical XML CDF CSS DOM Geolocation API HTML HTML5 InkML ITS JSON LD MathML OWL P3P PLS PNG RDF RDF Schema RIF SCXML SISR SKOS SMIL SOAP SRGS SSML SVG SPARQL Timed Text Turtle VoiceXML WSDL XForms XHTML XHTML RDFa XInclude XLink XML XML Base XML Encryption XML Events XML Information Set XML Namespace XML Schema XML Signature XPath XPointer XProc XQuery XSL XSL FO XSLT Elemente nbsp Arbeitsentwurfeund Kandidaten CCXML CURIE SMIL Timesheets sXBL WICD XFrames XBL XHTML MathML SVG XMLHttpRequestAnmerkungen XAdES XFDL XHTML SMIL XUPRichtlinien Web Content Accessibility Guidelines Multimodal Interaction Activity Markup Validation ServiceInitiativen Web Accessibility Initiative Abgerufen von https de wikipedia org w index php title Document Object Model amp oldid 235351737