Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_Палагута.doc
Скачиваний:
10
Добавлен:
13.11.2019
Размер:
6.6 Mб
Скачать

13.2. Об’єктна модель документа, dom - аналізатори

Об’єктна модель документа (DOM) є, як і SAX, стандартом, основаним на API, і використовується розробниками для створення XML – аналізаторів. На відміну від SAX, DOM – аналізатор зчитує XML – документ у пам’ять повністю, перетворюючи його у деревовидну структуру і зберігаючи документ у пам’яті. Це дає можливість отримати доступ до частин документа. DOM – аналізатор може також створювати новий і змінювати існуючий XML – документ. До недоліків DOM – аналізаторів можна віднести те, що вони можуть працювати лише з тими документами, які повністю можуть бути розташовані в пам’яті.

XML DOM надає програмістам інтерфейс для створення XML – документів, переміщення по документу, додавання, зміни або знищення частин XML – документів, який не залежить від платформи, що використовується. Тобто прикладний інтерфейс API надає ідентифікатори, які можна використовувати при зверненні до об’єктів і методів, при чому ці ідентифікатори однакові незалежно від того, на якій мові програмування створюється програмне забезпечення для роботи з XML – документами. У специфікаціях DOM консорціуму W3C використано мова опису інтерфейсів IDL (Interface Description Language). IDL – це стандарт (стандарт ISO № 14750), розроблений групою OMG (Object Management Group – група управління об’єктами http://www.omg.org/). Для забезпечення сумісності DOM з різними браузерами W3C розробив специфікації , які об’єднано в групу W3C DOM.

DOM забезпечує логічний вид структури документа у пам’яті подібно до моделі документа XPath. Увесь XML – документ надано як вузол Document, що знаходиться у вершині дерева. Вузли документа а моделі DOM бувають різних типів, найбільш поширеними є такі типи, як Node і Element. Вузол Node – це базовий тип для більшості об’єктів у DOM. Він може вміщувати будь-яку кількість дочірніх вузлів, а також батьківський вузол (крім випадку, коли він вміщує кореневий вузол, і, відповідно, батьківського вузла не існує). Об’єкт вузла Element використовується для подання елементів XML, які можуть вміщувати атрибути, текстові данні, а також інші елементи.

Рисунок 13.1 - Механізм використання DOM для роботи з XML – документами

Наприклад, DOM дерево такого простого XML – документа наведено на рис.13.2.

<?xml version="1.0" ?>

<firms>

<firm title="ТОВ 'Донбас'">

<address> 83015, м.Донецьк, вул.Унівеситетська, 95

</address>

<heads>

<director>

<name> Онопенко Михайло Петрович </name>

</director>

<chief_accountant>

<name> Максименко Лідія Володимирівна </name>

</chief_accountant>

</heads>

</firm>

<firm title="ТОВ 'Славутич'">

<address>83007, м.Донецьк, бул.Шевченка, 31

</address>

<heads>

<director>

<name> Ірина Григорівна Дмитренко </name>

</director>

<chief_accountant>

<name> Ольга Валеріївна Кушнір </name>

</chief_accountant>

</heads>

</firm>

</firms>

Оскільки технологія DOM реалізує об’єктний підхід, до фрагментів дерева застосовуються поняття властиві об’єктно-орієнтованим технологіям. Вузли певного рівня розглядаються як елементи колекції (класу), вузли характеризуються властивостями, які можна змінювати, для роботи з вузлами дерева застосовуються певні методи.

Рисунок 13.2 - DOM - дерево XML – документа