ООП   XML   СУБД   ЯиМП   3GL   4GL   5GL   технологии прогр.

Язык XML. Объектно-ориентированное программирование

Объектная модель документа DOM

Одним из самых мощных интерфейсов доступа к содержимому XML документов является Document Object Model - DOM.

Объектная модель XML документов является представлением его внутренней структуры в виде совокупности определенных объектов. Для удобства эти объекты организуются в некоторую иерархическую древовидную структуру данных - каждый элемент документа может быть отнесен к отдельной ветви, а все его содержимое, в виде набора вложенных элементов, комментариев, секций CDATA и т.д. представляется в этой структуре поддеревьями. Т.к. в любом правильно составленном XML-документе обязательно определен главный элемент, то все содержимое можно рассматривать как поддеревья этого основного элемента, называемого в таком случае корнем дерева документа. Для следующего фрагмента XML документа:

<tree-node>
  <node-level1>
    <node-level2/>
    <node-level2>text</node-level2>
    <node-level2/>
  </node-level1>
<node-level1>
   <node-level2>text</node-level2>
<node-level1>
    <node-level2/>
    <node-level2><node-level3/></node-level2>
</node-level1>
</tree-node>

Объектное представление структуры документа не является чем-то новым для разработчиков. Для доступа к содержимому HTML страницы в сценариях давно используется объектно-ориентированный подход, - доступные для Java Script или VBScript элементы HTML документа могли создаваться, модифицироваться и просматриваться при помощи соответствующих объектов. Но их список и набор методов постоянно изменяется и зависит от типа браузера и версии языка. Для того, чтобы обеспечить независимый от конкретного языка программирования и типа документа интерфейс доступа к содержимому структурированного документа в рамках W3 консорциума была разработана и официально утверждена спецификация объектной модели DOM Level 1.

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

Для описания интерфейсов доступа к содержимому XML документов в спецификации DOM применяется платформонезависимый язык IDL и для использования их необходимо "перевести" на какой-то конкретный язык программирования. Однако этим занимаются создатели самих анализаторов, нам можно ничего не знать о способе реализации интерфейсов - с точки зрения разработчиков прикладных программ DOM выглядит как набор объектов с определенными методами и свойствами. В следующем разделе мы вкратце рассмотрим объектную модель Microsoft Internet Explorer 5, доступную из Java Script и VBScript сценариев.

Краткое описание модели DOM

XML Document Object Model (DOM) - это представление XML-документа в виде иерархии объектов некоторого языка программирования, позволяющее анализировать и/или изменять структуру XML-документа. DOM стандартизован W3C. Естественно, что реализации DOM выполняются различными производителями. Наиболее известная реализация DOM для Windows создана, разумеется, Микрософт.

DOM-парсер поставляется с версиями IE (начиная с версии 4.0). На момент создания этой статьи наиболее свежая версия парсера MSXML, поддерживающего DOM - 3.0. Ее можно бесплатно скачать с сервера Микрософт (www.microsoft.com).

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

DOM-парсер создает дерево объектов и дает возможность управлять им. Это позволяет разработчику воспользоваться встроенной в парсер логикой вместо ручной работы с XML.

Таким образом, DOM предоставляет интерфейс для загрузки, доступа, манипуляций и сериализации XML-документов. DOM создает хранящееся в памяти представление целого XML-документа, что позволяет работать со всем его содержимым. Когда парсер загружает документ, он считывает его целиком и создает логическую модель узлов на основании структур и содержания документа. Документ рассматривается как единый узел, содержащий все остальные узлы, включая узел, представляющий корневой элемент, который, в свою очередь, содержит все элементы, атрибуты и текстовые узлы документа. Вот один из XML-документов:

<?xml version="1.0" encoding=" windows-1251"?>
<?xml-stylesheet type="text/xsl" href="show_book.xsl"?>
<!DOCTYPE catalog SYSTEM "catalog.dtd">
<!--catalog last updated 2000-11-01-->
<catalog xmlns="">
  <book id="bk101">
     <author>Gambardella, Matthew</author>
     <title>XML Developer's Guide</title>
     <genre>Computer</genre>
     <price>44.95</price>
     <publish_date>2000-10-01</publish_date>
     <description><![CDATA[Глубокий взгляд на создание XML-приложений, используя <, >,]]> and &.</description>
  </book>
  <book id="bk109">
     <author>Фрай, Макс</author>
     <title>Гнезда Химер</title>
     <genre>Фэнтези</genre>
     <price>54.00</price>
     <publish_date>2000-01-02</publish_date>
     <description>После долгой жизни в Ехо сэр Макс оказывается в совершенно незнакомом мире.</description>
  </book>
</catalog>

После разбора два верхних уровня структуры узлов выглядят следующим образом. Самый верхний - это собственно документ, содержащий все остальные узлы. Сразу за ним следуют узлы, представляющие XML-декларацию, указание XSL, с помощью которого обрабатывается документ, декларация DOCTYPE и корневой элемент документа, в данном случае, catalog.

В элемент catalog входит реальное содержание документа, включающее узлы элементов, атрибутов, текста и CDATA. (Заметьте, что все узлы конвертируются при обработке, а CDATA - нет.)

Применение DOM

DOM позволяет приложению работать со структурой и данными XML-документа как со структурой программы, а не текстовым потоком. Используя возможности DOM API, приложения и скрипты могут работать с этими структурами, не зная о деталях синтаксиса XML.

DOM использует две общие для XML абстракции: древовидную иерархию и узлы, представляющие структуру и содержимое документа. Для разработчика это означает, что обработка XML состоит в навигации по этому дереву для обработки или изменения информации. Работа с XML требует думать об информации как о наборе вложенных контейнеров, и следить за тем, чтобы информация укладывалась или вынималась из правильного контейнера.

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

ООП   XML   СУБД   ЯиМП   3GL   4GL   5GL   технологии прогр.

Знаете ли Вы, что любой разумный человек скажет, что не может быть улыбки без кота и дыма без огня, что-то там, в космосе, должно быть, теплое, излучающее ЭМ-волны, соответствующее температуре 2.7ºК. Действительно, наблюдаемое космическое микроволновое излучение (CMB) есть тепловое излучение частиц эфира, имеющих температуру 2.7ºK. Еще в начале ХХ века великие химики и физики Д. И. Менделеев и Вальтер Нернст предсказали, что такое излучение (температура) должно обнаруживаться в космосе. В 1933 году проф. Эрих Регенер из Штуттгарта с помощью стратосферных зондов измерил эту температуру. Его измерения дали 2.8ºK - практически точное современное значение. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution