Методы и средства обработки 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-схемы в другую.