Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Document Object Model (DOM)






DOM supports navigating and modifying XML documents

– Hierarchical tree representation of document

– Tree follows standard API

– Creating tree is vendor specific

DOM is a language-neutral specification

– Bindings exists for Java, C++, CORBA, JavaScript

DOM Versions

– DOM 1.0 (1998)

– DOM 2.0 Core Specification (2000)

DOM (от англ. Document Object Model — «объектная модель документа») — это не зависящий от платформы и языка программный интерфейс, позволяющий программам и скриптам получить доступ к содержимому HTML, XHTML и XML-документов, а также изменять содержимое, структуру и оформление таких документов.

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

Изначально различные браузеры имели собственные модели документов (DOM), не совместимые с остальными. Для того, чтобы обеспечить взаимную и обратную совместимость, специалисты международного консорциума W3C классифицировали эту модель по уровням, для каждого из которых была создана своя спецификация. Все эти спецификации объединены в общую группу, носящую название W3C DOM.

 

DOM – это специальная, языково-независимая интерфейсная модель разбора XML и HTML документов. В этой статье мы будем разсматривать основную и самая важную часть DOM – DOM Core описывающую модель XML. Существует три уровня моделей DOM: DOM Level 1 – описывает основные интерфейсы, DOM Level 2 – вводит дополнение XML Namespaces, DOM Level 3 – определяет методы Load и Save.

Чтобы понять это представте себе такую структуру напоминающую дерево как файловая структура в Проводнике Windows. Каждый элемент дерева имеет определенный тип. Некоторые элементы дерева являются своеобразными листьями, то есть не могут иметь дочерних элементов. К таким относятся: text, CDATASection, Comment, Attr... Всего основных интерфейсов – 10 (см. список выше). Доступ к ним можно осущестлять через соответствующий им интерфейс.

Итак представим себе такой фрагмент языка HTML:

< html>

< head> < title> DOM< /title> < /head>

< body>

< h1> It's a header< h1>

< p align=" center" > And it is a content< /p>

< /body>

& lthtml>

 

Модель DOM должна интетпретировать этот код так:

Самый верхний элемент получившегося дерева – узел типа Document. Этот оъект должен присутствовать во всех DOM документах. В нём содержатся значения: типа документа, корневого элемента (в данном случае это нижестоящий элемент " HTML"). Следующий узел " HTML" – объект типа Element. Это основной тип узлов. В вышеприведенном примере к узлам Element также относятся: " Head", " Body", " Title", " H1", " P". Узел " DOM" принадлежит к текстовым (text). Объекты Element могут также содержать аттрибуты – узлы типа Attribute. Например:

< h1 align=" left" > It is a header< /h1>

В данном примере элемент " H1" содержит дочерние элементы " align" типа Attribute и " It is a header" типа Text. Как уже вам известно все эти интерфейсы определены в DOM Level 1.

Что такое Namespaces? DOM Level 2.

Модель DOM Level 2 вводит использование стилевых таблиц, определяет модель сообщений и XML Namespaces. Одним из самых важных в DOM Level 2 было введение XML Namespaces. В сущности namespaces (пространства имен) используются для того чтобы разрешить многократный доступ к словарям XML при этом используясь в одном XML документе. Например вы хотите использовать описания книг находящиеся в XHTML документе. Каждая книга в своем описании использует элемент < title>. Но элемент < title> уже используется в заголовке документа XHTML. В таком случае будет тяжело сделать различие между этими элементами. Для решения этой проблемы, каждому элементу < title> надо присвоить идентификатор. Для этого служит URI (Unified Resource Indentefier). Итак для того чтобы присвоить какому либо элементу универсальный идентификатор нужно к тегу стоящему выше его по иерархии DOM добавить параметр вида " xmlns: indentefier=" URI", где indentefier это имя индентификатора, а URI – сам индентификатор. Для его использования надо к используемуму элементу добавить спереди имя идентификатора indentefier и двоеточие.

<? xml version=" 1.0"? >

< html xmlns: xhtml=" www.w3c.org/tr/xhtml" xmlns: books=" www.piter-press.ru" >

< xhtml: title> Это заголовок документа XHTML< /xhtml: title>

< book> < books: title> А здесь должен быть заголовок книжки< /books: title> < /book>

< /html>

В даном случае в корневом теге < html> описано два пространства имен – xhtml и books. Теперь в этом документе можно использовать одни и те же элементы, но с разным значением, ставя перед ними имя пространства имен и двоеточие. Вы можете также применить пространство имен для всех элементов данного блока напрмер:

< xml xmlns: abc=" https://www.allxml.h1.ru/abc" >

< abc: element> < subelement attr=" value" > Some text< /subelement> < /abc: element>

< /xml>

...эквивалентно:

< xml xmlns: abc=" https://www.allxml.h1.ru/abc" >

< abc: element> < abc: subelement abc: attr=" value" > Some text< /abc: subelement> < /abc: element>

< /xml>

Использование пространств имен DOM 2 обеспечивается введением нескольких дополнительных функций.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.