1. ОБЩЕЕ ПРЕДСТАВЛЕНИЕ МОДЕЛИ DOM

 

Объектная модель документа (DOM - Document Object Model) является независимым от платформы реализации языком. С точки зрения программиста он представляется  в виде Интерфейса Прикладного Программирования (API - Application Programming Interface), который предоставляет программам доступ и манипулирование содержанием и структурой XML.

 

С точки зрения DOM, XML документ после обработки его анализатором (parser) представляется в памяти компьютера в виде дерева, которое состоит из иерархически связанных узлов (nodes). Структура иерархии дерева XML документа соответствует структуре самого XML документа.

 

Возьмем простой XML документ, описывающий состав книг в библиотеке.

<library>

  <book>

      <title>Программирование</title>

      <author>Иванов И.И.</author>

  </book>

  <book>

      <title>Информатика</title>

      <author>Петров П.П.</author>

  </book>

</library>

Примечание. Поскольку в примерах будут использоваться символы кириллицы, то с точки зрения правильности синтаксиса в начале каждого XML документа мы должны использовать тег <?xml version="1.0" encoding="windows-1251" ?>.  Однако, для простоты и ясности изложения в примерах может опускаться.

 

На рисунке 1 представлено дерево, представленного выше XML документа.

 

1.1. ВЗАИМООТНОШЕНИЯ УЗЛОВ ДЕРЕВА

 

Узлы дерева находятся в определенном взаимном отношении друг к другу. Введем понятия этих отношений, которые будем использовать в дальнейшем.

Корневой узел – самый верхний узел дерева, соответствующий корневому элементу XML документа. На рис.1 – это элемент library.

Родительский узел (parent node) – узел из которого наследуются узлы более низкого уровня дерева. Соответствует понятию контейнера в структуре XML документа. На рис.1, например, узел book является родительским по отношению к узлам title и author.

Дочерний узел (child node) – узел, который наследуется из узла более высокого уровня. Соответствует, в структуре XML документа, понятию вложенного в контейнер элемента. На рис.1, например, узлы title и author является дочерними относительно узла book.

Узлы братья (siblings) – одноуровневые узлы, принадлежащие одному родителю. В структуре XML документа это узлы непосредственно вложенные в контейнер. На рис.1, например, узлы title и author является братьями.

 

         

                    Рис.1. Дерево документа

 

1.2. АНАЛИЗАТОР MSXML ФИРМЫ MICROSOFT

 

Для того чтобы построить дерево XML документа, он должен быть обработан анализатором. Следует отметить, что построение дерева далеко не единственная задача анализатора, но в данном документе именно эта возможность будет нас интересовать.

 

В настоящее время существует большое количество различных анализаторов XML документов, ориентированных на различные операционные среды. Мы, в ходе дальнейшего рассмотрения, будем использовать анализатор фирмы MicrosoftMSXML. Выбор объясняется следующими факторами:

·       постоянно развивается и по своим возможностям является одним из наиболее мощных анализаторов;

·       входит в состав новых версий Windows и устанавливается как компонент Internet Explorer;

·       может быть бесплатно загружен с узла фирмы Microsoftwww.microsoft.com/xml .

Данный документ опирается на возможности версии MSXML 3.0.

 

Реализация модели DOM в MSXML базируется на использовании  общего подхода, применяемого в Windows, а именно спецификации COM. Поэтому для работы с деревом DOM следует использовать соответствующие интерфейсы СОМ. Это не представляет большой сложности, по названию объектов достаточно просто установить соответствия. Например, интерфейс IXMLDOMNode представляет объект DOM Node, а интерфейс IXMLDOMNodeList соответственно NodeList. Перечень объектов DOM и соответствующих интерфейсов СОМ представлены ниже в разделе "Объекты DOM".

Используются технологии uCoz