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

Для выполнения анализа данных разрабатываются различные методы, технологии и реализации.

Синтаксический анализатор (парсер) — это программа или часть программы, выполняющая синтаксический анализ.

Так, наиболее распространены 2 подхода: объектная модель документа DOM и SimpleAPI for XML (простой API для XML – SAX).

Объектная модель документов XML (DOM) позволяет программистам загружать содержимое XML файла в память. Как только XML файл загружен таким образом, с ним можно работать, используя свойства, методы и события объектной модели документов.

Объектная модель документов значительно облегчает выборку и обработку информации XML файла, удобна и хороша для разработчиков, но она требует довольно значительного объема системных ресурсов

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

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

+ DOM поддерживает навигацию в любой области (например, родитель и предыдущий брат) и учитывает произвольные изменения

- Из-за несовместимости браузеров использование DOM иногда приводит к трудностям HTML-вёрстки и низкой надёжности страниц.

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

SAX (англ. «Simple API for XML») — способ последовательного чтения/записи XML-файлов.

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

+Применяются SAX-парсеры либо для быстрого поиска по XML-документам, либо во время построения DOM, либо для чтения XML-потоков большого объема (когда построение DOM требует слишком большого объема памяти).

SAX — событийный парсер XML. Он содержит очень похожую модель обработки событий на такую же модель в Java. К примеру, в аплете Вы можете зарегистрировать обработчика события на клик мышкой, а в SAX Вы можете зарегистрировать обработчик события на начало и конец тегов элементов, таких как <name> и </name>.

Языки Extensible Markup Language(XSL) и XSL Transformations (XSLT): назначение и особенности использования.

XSL (eXtensible Stylesheet Language) — это язык, используемый для указания того, как структурированное содержимое XML должно быть представлено; то есть, как содержимое-источник должно быть стилизовано, расположено и разбито на страницы для конкретного носителя представления, такого как окно Web-браузера, или портативное ручное устройство, или набор физических страниц в каталоге, отчёте, или книге. Состоит из трех частей:

· XSL Transformations (XSLT) — язык преобразований XML-документов.

· XSL Formatting Objects (XSL-FO) — язык разметки типографских макетов и иных предпечатных материалов.

· XPath — язык путей и выражений, используемый в XSLT для доступа к отдельным частям XML-документа.

Языком, лежащим в основе XSL, является XML, а это означает, что XSL более гибок, универсален, и у разработчиков появляется возможность использования средств контроля за корректностью составления таких стилевых списков (используя DTD или схемы данных).

XSL-трансформация

С помощью XSL можно трансформировать XML-документ в любой вид, будь то HTML, WML, RTF, PDF, SQL, или даже SWF (flash-запускаемый модуль), а также XSL. XSL несёт в себе информацию о том, как будет оформлен документ, где и как должны располагаться данные.

Для того, чтобы обработать XML документ c помощью XSL, необходимо в XML документе написать следующую инструкцию:

<?xml-stylesheet type="text/xsl" href="my-style.xsl"?>

XSLT (eXtensible Stylesheet Language Transformations) — язык преобразования XML-документов. Спецификация XSLT входит в состав XSL и является рекомендацией W3C.

При применении таблицы стилей XSLT, состоящей из набора шаблонов, к XML-документу (исходное дерево) образуется конечное дерево, которое может быть сериализовано в виде XML-документа, XHTML-документа (только для XSLT 2.0), HTML-документа или простого текстового файла. Правила выбора (и, отчасти, преобразования) данных из исходного дерева пишутся на языке запросов XPath.

XSLT имеет множество различных применений, в основном в области web-программирования и генерации отчётов. Одной из задач, решаемых языком XSLT, является отделение данных от их представления, как часть общей парадигмы MVC (англ. Model-view-controller). Другой стандартной задачей является преобразование XML-документов из одной XML-схемы в другую.

Задачи, решаемые при использовании языка XSLT:

- отделение данных от их представления, как часть общей парадигмы MVC ( Model-view-controller).

- преобразование XML-документов из одной XML-схемы в другую.

Процесс выполнения XSLT-преобразования

В процессе выполнения XSLT-преобразования задействованы:

· один или несколько входных XML-документов;

· одна или несколько таблиц cтилей XSLT;

· XSLT-процессор;

· один или несколько выходных документов.

В простейшем случае XSLT-процессор получает на входе два документа — входной XML-документ и таблицу стилей XSLT — и создает на их основе выходной документ.

Язык XSLT является декларативным, а не процедурным. Вместо определения последовательности исполняемых операторов, этот язык определяет правила, которые будут применяться во время преобразования. Само преобразование ведется по фиксированному алгоритму.

Наши рекомендации