- XML DOM
-
DOM (от англ. Document Object Model — «объектная модель документа») — это независящий от платформы и языка программный интерфейс, позволяющий программам и скриптам получить доступ к содержимому документов, а также изменять содержимое, структуру и оформление документов.
Модель DOM не накладывает ограничений на структуру документа. Любой документ известной структуры с помощью DOM может быть представлен в виде дерева узлов, каждый узел которого представляет собой элемент, атрибут, текстовый, графический или любой другой объект. Узлы связаны между собой отношениями родительский-дочерний.
Изначально различные браузеры имели собственные модели документов (DOM), не совместимые с остальными. Для того, чтобы обеспечить взаимную и обратную совместимость, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.
Содержание
Уровни W3C DOM
Текущим уровнем спецификаций DOM является Уровень 2, но тем не менее некоторые части спецификаций Уровня 3 являются рекомендуемыми W3C.
- Уровень 0
- Включает в себя все специфические модели DOM, которые существовали до появления Уровня 1, например document.images, document.forms, document.layers и document.all. Необходимо обратить внимание, что эти модели формально не являются спецификациями DOM, опубликованными W3C, а скорее являются информацией о том, что существовало до начала процесса стандартизации.
- Уровень 1
- Базовые функциональные возможности DOM (HTML и XML) в документах, такие как получение дерева узлов документа, возможность изменять и добавлять данные.
- Уровень 2
- Поддержка так называемого пространства имён XML <--filtered views--> и событий.
- Уровень 3
- Состоит из шести различных спецификаций:
- DOM Level 3 Core;
- DOM Level 3 Load and Save;
- DOM Level 3 XPath;
- DOM Level 3 Views and Formatting;
- DOM Level 3 Requirements;
- DOM Level 3 Validation.
- Эти спецификации являются дополнительными расширениями DOM.
Реализация DOM в веб-браузерах
Учитывая существование различных реализаций DOM в веб-браузерах, среди программистов распространена привычка проверять работоспособность тех или иных возможностей DOM для каждого конкретного браузера, и только потом использовать их. Код ниже иллюстрирует способ проверки на поддержку стандартов W3CDOM перед тем как запустить код, зависящий от результата этой проверки.
if (document.getElementById && document.getElementsByTagName) { // если методы getElementById и getElementsByTagName // доступны, то можно относительно точно предположить поддержку W3CDOM. obj = document.getElementById("navigation") // далее идёт другой код с использованием возможностей W3CDOM. // ..... }
Еще один фрагмент кода JavaScript, позволяющий проверить заявленную поддержку различных расширений DOM в конкретном браузере.
function domImplementationTest(){ var featureArray = ['HTML', 'XML', 'Core', 'Views', 'StyleSheets', 'CSS', 'CSS2', 'Events', 'UIEvents', 'MouseEvents', 'HTMLEvents', 'MutationEvents', 'Range', 'Traversal']; var versionArray = ['1.0', '2.0', '3.0']; var i; if(document.implementation && document.implementation.hasFeature){ for(i=0; i < featureArray.length; i++){ for(j=0; j < versionArray.length; j++){ document.write( 'Поддержка расширения '+ featureArray[i] + ' версии ' + versionArray[j] + ' : ' + document.implementation.hasFeature(featureArray[i], versionArray[j]) + '<br>' ); } document.write('<br>'); } } }
Проблемы
Из-за несовместимости браузеров использование DOM иногда приводит к трудностям HTML-верстки и низкой надёжности страниц.
Спецификации
- Спецификация DOM Level 1
- Рекомендации W3C к Уровню 2:
- Рекомендации W3C к Уровню 3:
- Документы рабочей группы W3C к Уровню 3:
Ссылки
- Школа консорциума W3C (семейство XML) (рус.)
- Раздел DOM на сайте Консорциума Всемирной паутины (W3C) (англ.)
- Доклады по DOM(англ.)
- Учебники по DOM(англ.)
- Какой уровень DOM поддерживает ваш браузер?(англ.)
- Что включает в себя каждый уровень DOM?(англ.)
- Раздел W3C DOM на сайте Microsoft (MSDN)(англ.)
- Скрипты W3C DOM и таблицы совместимости(англ.)
- Ссылка на Gecko DOM(англ.)
- Документация по khtml Library API(англ.)
- Быстрое знакомство с DOM
Стандарты Консорциума Всемирной паутины Рекомендации W3C CDF · · CSS · DOM · · · OWL · RDF · RDF Schema · SISR · · · SRGS · SSML · · Timed Text · VoiceXML · · · · · · XML Base · XML Events · XML Information Set · XML Schema · · · · · · · Примечания XHTML+SMIL Рабочие проекты CCXML · CURIE · InkML · XFrames · XFDL · WICD · XHTML+MathML+SVG
Wikimedia Foundation. 2010.