ООП   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   технологии прогр.

Знаете ли Вы, что cогласно релятивистской мифологии "гравитационное линзирование - это физическое явление, связанное с отклонением лучей света в поле тяжести. Гравитационные линзы обясняют образование кратных изображений одного и того же астрономического объекта (квазаров, галактик), когда на луч зрения от источника к наблюдателю попадает другая галактика или скопление галактик (собственно линза). В некоторых изображениях происходит усиление яркости оригинального источника." (Релятивисты приводят примеры искажения изображений галактик в качестве подтверждения ОТО - воздействия гравитации на свет)
При этом они забывают, что поле действия эффекта ОТО - это малые углы вблизи поверхности звезд, где на самом деле этот эффект не наблюдается (затменные двойные). Разница в шкалах явлений реального искажения изображений галактик и мифического отклонения вблизи звезд - 1011 раз. Приведу аналогию. Можно говорить о воздействии поверхностного натяжения на форму капель, но нельзя серьезно говорить о силе поверхностного натяжения, как о причине океанских приливов.
Эфирная физика находит ответ на наблюдаемое явление искажения изображений галактик. Это результат нагрева эфира вблизи галактик, изменения его плотности и, следовательно, изменения скорости света на галактических расстояниях вследствие преломления света в эфире различной плотности. Подтверждением термической природы искажения изображений галактик является прямая связь этого искажения с радиоизлучением пространства, то есть эфира в этом месте, смещение спектра CMB (космическое микроволновое излучение) в данном направлении в высокочастотную область. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 19.01.2020 - 12:22: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
19.01.2020 - 12:19: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
19.01.2020 - 12:17: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
19.01.2020 - 12:16: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Фурсова - Карим_Хайдаров.
17.01.2020 - 15:29: СОВЕСТЬ - Conscience -> РУССКИЙ МИР - Карим_Хайдаров.
17.01.2020 - 15:27: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Марины Мелиховой - Карим_Хайдаров.
17.01.2020 - 15:23: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Ю.Ю. Болдырева - Карим_Хайдаров.
16.01.2020 - 04:02: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ФАЛЬСИФИКАЦИЯ ИСТОРИИ - Карим_Хайдаров.
15.01.2020 - 17:43: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Светланы Вислобоковой - Карим_Хайдаров.
15.01.2020 - 14:41: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Маклакова - Карим_Хайдаров.
13.01.2020 - 16:38: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Андрея Пешехонова - Карим_Хайдаров.
13.01.2020 - 08:06: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Пламена Паскова - Карим_Хайдаров.
Bourabai Research Institution home page

Bourabai Research - Технологии XXI века Bourabai Research Institution