Что такое структура данных DOM? Объектная модель документа
Вы любите программирование? Нравится ли оно Вам настолько, чтобы посвятить ему свою профессиональную карьеру? Как вы прекрасно знаете, область программирования очень широка и имеет множество различных специализаций. Сегодня мы рассмотрим все, что вам нужно знать о модели структуры данных DOM (Document Object Model).
Что такое модель DOM?
Объектная модель документа (сокращенно DOM ) - это интерфейс прикладного программирования для HTML- и XML-документов. Модель структуры данных DOM определяет логическую структуру документов, а также способы доступа к ним и манипулирования ими. С помощью объектной модели документа программисты могут создавать документы, ориентироваться в их структуре, добавлять, изменять или удалять элементы и содержимое.
Одной из важнейших целей создания модели DOM является обеспечение стандартного интерфейса программирования, который можно использовать в различных средах и приложениях. Также немаловажным фактом является то, что модель DOM может быть использована в составе любого языка программирования, может быть реализована в любой вычислительной среде и не требует связывания объектных библиотек.
Можно сказать, что модель структуры данных DOM - это API программирования для документов, способный сливаться со структурой моделируемого документа.
Объектная модель документа или структура DOM
Документы моделируются с помощью объектов, поэтому модель понимает структуру документа и поведение документа и объектов, из которых он состоит. Таким образом, модель DOM способна идентифицировать:
- Интерфейсы и объекты, используемые для представления и манипулирования документом
- Семантику этих интерфейсов и объектов, включая их поведение и атрибуты
- Взаимосвязи и взаимодействия между этими интерфейсами и объектами.
Модель структуры данных DOM состоит из двух частей - ядра DOM и HTML DOM. Ядро DOM представляет собой функциональность, используемую для работы с XML-документами, а также служит основой для HTML DOM. Кроме того, его функция заключается в реализации либо HTML DOM, либо расширенных интерфейсов (XML), либо и того, и другого, причем все они имеют определенную семантику.
Структура данных DOM
В мире веб-программирования модель DOM определяет интерфейсы, которые можно использовать для работы с XML- или HTML-документами. В будущем предполагается, что спецификация модели DOM будет предусматривать:
- Структурную модель как для внутреннего подмножества, так и для внешнего подмножества.
- Валидацию для эскизов.
- Управление представлением документов с помощью таблиц стилей.
- Контроль доступа.
- Безопасность потоков процессов или нитей.
- События.
В модели DOM документы представляют собой структуру, похожую на дерево, создавая иерархическую структуру, в которой несколько вторичных объектов могут быть зависимы от главного объекта. Это хорошо видно на примере структуры HTML-страницы, которая состоит из вложенных тегов.

Структура данных DOM состоит из узлов, которые связаны друг с другом в иерархическую структуру, причем каждый узел имеет родительский узел, от которого он зависит, - это родительский узел. Кроме того, каждый узел может иметь 0, 1 или несколько зависимых узлов, называемых дочерними узлами.
Узлы, находящиеся на одном уровне и зависящие от одного родительского узла, называются сестринскими узлами. В этом любопытном семействе узлов все дерево DOM зависит от главного узла, из которого порождаются все узлы, - узла Document.
Типы узлов
- Document: корневой узел, от которого происходят все остальные.
- Элемент: каждый из HTML-тегов. Это единственный узел, который может содержать атрибуты и от которого могут происходить другие узлы.
- Attr: каждый атрибут тега порождает узел Attr, который также содержит его значение (как свойство). Он является дочерним узлом содержащего его элемента (метки).
- Text (текст): Содержит текст, заключенный в HTML-тег (дочерний узел Element).
- Comment: комментарии, включенные в HTML-страницу, также порождают свои узлы.
Существуют и другие типы узлов, которые используются в языке XML, но при использовании в составе HTML они обычно представляют собой четко определенные, фиксированные элементы. К ним относятся следующие:
- CDatasection: узел, который может содержать экранирующие символы, набираемые обычным образом.
- Document Type: декларация или метка Doctype.
- DocumentFragment: фрагмент или часть дерева DOM, позволяющая Javascript выбрать часть документа.
- Entity: управляющий символ или сущность в XML.
- EntityReference: ссылка на сущность XML.
- Инструкция по обработке
- Notation: похожи на "комментарий", но могут отображаться на экране в формате XML.
Как вы смогли убедиться, структура данных DOM или объектная модель документа используется большинством языков программирования (в основном XML и HTML) в качестве эталона для организации синтаксиса. Если вы также хотите работать с моделью DOM, знать ее особенности, понимать ее и "говорить" на ее языке, то вам, очевидно, потребуется специальное обучение, подтверждающее, что вы являетесь профессионалом в области веб-программирования.


