Что такое структура данных 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, знать ее особенности, понимать ее и "говорить" на ее языке, то вам, очевидно, потребуется специальное обучение, подтверждающее, что вы являетесь профессионалом в области веб-программирования.