Об'єктна модель документа: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Немає опису редагування
оформлення, правопис
Рядок 1:
'''Об'єктна модель документудокумента''' (англ. ''Document Object Model'', '''DOM''')  — специфікація [[API|прикладного програмного інтерфейсу]] для роботи зі структурованими документами (як правило, документів [[XML]]). Визначається ця специфікація [[World Wide Web Consortium|консорціумом W3C]].
 
З точки зору [[Об'єктно-орієнтоване програмування|об'єктно-орієнтованого програмування]], DOM визначає [[Клас (програмування)|класи]], [[Метод (програмування)|методи]] та [[Атрибут (об'єктне програмування)|атрибути]] цих методів для аналізу структури документів та роботи із представленям документів у вигляді [[Дерево (структура даних)|дерева]]. Все це призначено для того, аби надати можливість [[Програма|комп'ютерній програмі]] доступу та динамічної модифікації структури, змісту та оформлення документудокумента.
 
Разом із поширенням та розвитком веб-технологій і [[Веб-оглядач|веб-переглядачів]] почали з'являтись різні, часто несумісні інтерфейси роботи із [[HTML]] документами в [[інтерпретатор|інтерпретаторах]] [[JavaScript]] вбудованих в веб-переглядачі. Це спонукало [[World Wide Web Consortium]] (W3C) узгодити та визначити низку стандартів, які отримали назву ''W3C Document Object Model'' (W3C DOM). Специфікації W3C не залежать від платформи або [[мова програмування|мови програмування]].
Рядок 11:
 
; Level 0 : Не було стандартизовано, став основою для появи DOM Level 1. В якості прикладу можна навести ''DHTML Object Model'', або реалізацію DOM в веб-переглядачах [[Netscape]] ранніх версій.
; Level 1 : Обхід структури (дерева) документудокумента (HTML та XML), та модифікація змісту (включаючи додавання елементів). Також включаються специфічні елементи HTML.
; Level 2 : Підтримка [[XML namespace|просторів імен XML]], фільтрованих представлень та [[DOM Events|подій]].
; Level 3 : Складається із 6 різних специфікацій:
Рядок 24:
Враховуючи існуючі суттєві відмінності у реалізації DOM у веб-браузерах, серед програмістів розповсюджена звичка перевіряти дієздатність тих чи інших можливостей DOM для кожного з браузерів, і тільки потім використовувати їх. Код нижче ілюструє можливість перевірки стандартів W3CDOM перед тим як запускати код, що залежить від результату перевірки.
 
<source lang="javascript">
if (document.getElementById && document.getElementsByTagName) {
// якщо методи getElementById та getElementsByTagName
// існують, то можна з майже впевнено сподіватись на підтримку W3CDOM.
 
obj = document.getElementById("navigation")
// далі йде інший код з використанням можливостей W3CDOM.
Рядок 37:
Ще один фрагмент кода JavaScript, що дозволяє перевірити заявлену підтримку різних доповнень DOM у відповідному браузері.
 
<source lang="javascript">
<html>
<head>
Рядок 91:
</source>
 
== Модель документудокумента ==
[[Файл:DOM_inspector.png|right|thumb|Приклад відображення фрагменту [[DOM]] дерева [[HTML]] документудокумента в прграміпрограмі DOM Inspector із Mozilla Suite]]
Після аналізу структурованого документа, будується його представлення у вигляді [[Дерево (теорія графів)|дерева]]. Дерево, в моделі DOM, складається із множини зв'язних ''вузлів'' (Node) різних типів. Як правило, розрізняють вузли наступних типів:
* Документ (''Document'') &nbsp;— корінь дерева, представляє цілий документ.
* Фрагмент документа (''DocumentFragment'') &nbsp;— вузол, який є корнем піддерева основного документа.
* Елемент (''Element'') &nbsp;— представляє окремий елемент HTML або XML документа.
* Атрибут (''Attr'') &nbsp;— представляє атрибут елемента.
* Текст (''Text'') &nbsp;— представляє текстові дані, які містяться в елементі або атрибуті.
Стандартом визначаються і деякі інші типи вузлів ву моделі документа.
 
Вузли деяких типів можуть мати гілки, інші ж можуть бути лише листами дерева. Спеціальні методи об'єктів вузлів дають можливість обходу дерева.
Рядок 121:
** [http://www.w3.org/TR/DOM-Requirements/ Document Object Model (DOM) Requirements]
 
== ДивітьсяДив. також ==
* [[DOM Events]]
* [[Simple API for XML|SAX]] -&nbsp;— Набір API для послідовної обробки структурованих документів.
 
== Зовнішні посилання ==
* [http://www.w3.org/DOM/ сторінкаСторінка DOM на W3.org]
* [http://xml.coverpages.org/dom.html Technology Reports]
* [http://xml.com/pub/rg/DOM_Tutorials Tutorials]
Рядок 135:
* [http://mozilla.org/docs/dom/domref/ Gecko DOM Reference]
* [http://developer.kde.org/documentation/library/cvs-api/khtml/html/namespaceDOM.html khtml Library API Documentation]
* Інтерфейси для...для…
** [http://xml.apache.org/xerces-c/program-dom.html C++]
** [http://www.w3.org/2003/01/dom2-javadoc/index.html Java] -&nbsp;— W3C Document Object Model Level 2
** [http://interaction.in-progress.com/developer/dom/ Lisp]
** [http://www.philo.de/xml/downloads.shtml Pascal] ([[Kylix]])