Otevřít hlavní menu

DOM (akronym anglického Document Object Modelobjektový model dokumentu) je objektově orientovaná reprezentace XML nebo HTML dokumentu. DOM je API umožňující přístup či modifikaci obsahu, struktury, nebo stylu dokumentu, či jeho částí.

Původně měl každý webový prohlížeč své vlastní specifické rozhraní k manipulaci s HTML elementy pomocí JavaScriptu. Vzájemná nekompatibilita těchto rozhraní však přivedla W3C k myšlence standardizace, a tak vznikl W3C Document Object Model (zkráceně W3C DOM). Tato specifikace je platformnějazykově nezávislá. Předchozí specifická rozhraní byla nazvána Intermediate DOM (anglicky přechodný DOM).

DOM umožňuje přístup k dokumentu jako ke stromu, což je zároveň datová struktura používaná ve většině XML parserů (Xerces, MSXML) a XSL procesorů (Xalan). Tato technologie, nazývaná grove (Graph Representation Of property ValuEs), vyžaduje nahrání celého parsovaného dokumentu do paměti, z čehož plyne, že její optimální použití je tam, kde je k jednotlivým elementům dokumentu přistupováno v náhodném pořadí nebo opakovaně. Existuje i alternativní technologie pro případ, že je potřeba postupná, nebo jednorázová úprava – sekvenční model SAX, který má v těchto případech výhodu rychlejšího zpracování a nižší paměťové náročnosti.

DOM LevelEditovat

Specifikace W3C DOM jsou rozděleny do několika úrovní (DOM level), z nichž každá obsahuje povinné a volitelné moduly. K tomu, aby nějaká aplikace mohla prohlásit, že podporuje určitý DOM level, musí implementovat všechny požadavky dané úrovně a všech nižších. Aplikace mohou též podporovat specifická rozšíření (anglicky vendor-specific extensions) za podmínky, že nejsou v konfliktu s W3C standardy. V současnosti (leden 2014) existují čtyři úrovně (Level 1, Level 2Level 3 a Level 4), z nichž první tři jsou již ve stádiu W3C Recommendation.

Level 0Editovat

Podpora Intermediate DOM, jenž existoval před vytvořením DOM Level 1. Například DHTML Object Model vyvinutý firmou Microsoft, nebo nepojmenovaný Intermediate DOM od Netscape. Level 0 není formální specifikací publikovanou W3C, ale používá se jako srozumitelná zkratka odkazující na věci existující před standardizačním procesem.

Level 1Editovat

Navigace v DOMu (HTML a XML) dokumentu (resp. jeho stromové struktuře) a manipulace s obsahem (včetně přidávání elementů). Specifické elementy HTML jsou obsaženy také.

Level 2Editovat

Podpora jmenných prostorů (anglicky XML namespace), událostí a filtrovaných pohledů.

Level 3Editovat

Standardizovaný mechanismus načítání a ukládání a podpora XML schémat[1]. Navíc umožňuje například dynamické vkládání obsahu do dokumentu a přidává některé nové metody a vlastnosti.[2]

Level 4Editovat

Vývoj se zaměřuje na sloučení předchozích standardů DOM Level 3 Core, Element Traversal, Selectors API Level 2, DOM Level 3 Events a DOM Level 2 Traversal and Range a jejich zjednodušení a přiblížení již existujícím standardům, především specifikacím JavaScriptu a HTML5. Specifikace dále zjednoduší časté DOM operace.[3]

SpecifikaceEditovat

Všechny dokumenty jsou v angličtině

Level 1Editovat

Level 2Editovat

Level 3Editovat

Level 4Editovat

Další (vývoj ukončen, nikdy nevydané)Editovat

ReferenceEditovat

Související článkyEditovat

Externí odkazyEditovat