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

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

Так, наиболее распространены 2 подхода: объектная модель документа DOM и SimpleAPI for XML. Эти программные интерфейсы кардинально отличаются друг от друга.

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

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

DOM парсеры базируются на объектах, а SAX парсеры - на событиях.

DOM парсеры создают дерево в памяти, в то время как SAX парсеры - нет, что и делает их быстрее, чем DOM.

DOM парсеры полезны в тех случаях, когда нам необходимо модифицировать XML, а SAX - когда невозможно изменить xml из-за того, что он "только для чтения".

XML документ в соответствии с моделью XML DOM представляется как дерево из узлов, при этом:

Все узлы дерева находятся в определенных отношениях друг с другом.

Все узлы доступны через дерево. Их содержимое может быть изменено, удалено; новые элементы могут быть добавлены в дерево.

Дерево начинается с корневого узла и разветвляется вниз вплоть до текстовых узлов на самом низшем уровне дерева.

Все узлы находятся в иерархических отношениях между собой.

Эти отношения описываются с помощью понятий родитель, дочерний и потомок (все дочерние на одном уровне).

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

Такими событиями могут быть следующие:

текстовый узел;узел элемента XML;инструкция обработки XML;комментарий XML.

Атрибут XML также рассматривается как событие.

Анализ документа является однонаправленным (т.е. без возвратов по дереву).

В отличие от DOM формальной спецификации для SAX не существует. Следует отметить следующие достоинства и недостатки SAX.

Достоинства:

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

Скорость работы выше за счет сокращения затрат времени на выделение памяти для элементов дерева в случае DOM.

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

Недостатки:Процедура проверки правильности предполагает доступ ко всему документу одновременно.Это также требуется и в случае XSLT преобразования.


 

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

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

XSL Transformations - используется для преобразования документов XML из одной формы в другую.

XSL Formatting Objects - используется для описания формата просматриваемых документов XML.

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

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

XSL был разработан так, чтобы дать дизайнерам возможность управлять свойствами, необходимыми при разбивке документов на страницы, а также чтобы предоставить структуру, эквивалентную "фрэймам", для просмотра Web. Чтобы достичь поставленных целей, XSL расширил набор объектов форматирования и свойств форматирования. В дополнение к этому, отбор компонентов-источников XML, которые могут быть стилизованы (элементы, атрибуты, текстовые узлы, комментарии и инструкции процесса) базируется на XSLT и XPath [XPath], предоставляя таким образом пользователю сверхмощный механизм отбора.

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-схемы в другую.