XML - статьи

         

DOM


Вспецификации «Объектная модель документов» (Document Object Model (DOM)) [Рекомендация W3C] описывается объектная модель XML-документов, которая может быть использована для прямого доступа к частям XML-документа. Согласно концепции модели DOM, документ моделируется в виде дерева, в котором каждый компонент синтаксиса XML (как, например, элемент или текстовое содержание) представляется с помощью узла.

Модель DOM — это интерфейс прикладного программирования, с помощью которого можно перемещаться по дереву, от узла родителя к потомку, к сестринским узлам, а также использовать специальные свойства определенных типов узлов (например, у элементов могут быть атрибуты, а у текстовых узлов — текстовые данные).

Модель DOM задумывалась как нейтральная от языка. Для выражения узлов DOM и поддержки интерфейсов используется спецификация консорциума по технологии манипулирования объектами (Object Management Group, OMG) «Язык описания интерфейса CORBA» (CORBA Interface Definition Language (IDL)) [Международный стандарт ISO, номер 14750].

Первоначально модель DOM создавалась как объектная модель для стандартизации криптовых операций над объектами HTML и XML в Web-браузерах. В некоторых случаях это приводит к затруднениям при использовании этой модели в качестве изолированного интерфейса прикладного программирования. При разработке модели DOM выпускалось несколько версий спецификации (Level), каждая из которых опирается на предыдущую, добавляя новые функциональные возможности.

Так, документ Level 1 охватывал основные возможности, в Level 2 появилась поддержка пространств имен, модель событий пользовательского интерфейса, итераторы и многое другое. В Level 3 включены интерфейсы прикладного программирования для загрузки в файлы XML-документов и сохранения из них, для интегрирования XPath, поддержка проверки допустимости и другое.

Хотя в целом овладеть DOM гораздо легче, чем SAX, поскольку в модели DOM не задействованы функции обратного вызова и сложное управление состоянием, реализации DOM обычно хранят все узлы XML в памяти, что может быть весьма неэффективно для больших документов. Несмотря на то, что реализации DOM написаны на многих языках, модель DOM задумана как независимая от языка.

Приверженцы того или иного языка часто жалуются на то, что модель DOM неудобна и не использует сильные стороны отдельного языка. В результате, появилось множество ориентированных на языки интерфейсов прикладного программирования.



Содержание раздела