Все узлы дерева находятся в определенных отношениях друг с другом.
Все узлы доступны через дерево. Их содержимое может быть изменено, удалено; новые элементы могут быть добавлены в дерево.
Дерево начинается с корневого узла и разветвляется вниз вплоть до текстовых узлов на самом низшем уровне дерева.
Дерево узлов XML DOM
Все узлы находятся в иерархических отношениях между собой.
Эти отношения описываются с помощью понятий родитель, дочерний и потомок (все дочерние на одном уровне).
SAX-парсер
Альтернативой DOM является SAX.
SAX (Simple API for XML) прикладной программный интерфейс для парсера с последовательным доступом к XML.
SAX предоставляет механизм чтения данных из XML документа.
SAX парсер является поточным и управляемым событиями.
Задачей пользователя SAX API является описание методов, вызываемых событиями, возникающими при анализе документа.
SAX-парсер
Такими событиями могут быть следующие:
текстовый узел
узел элемента XML
инструкция обработки XML
комментарий XML
События вызываются появлением любого из перечисленных элементов, также как и в конце этих элементов. Атрибут XML также рассматривается как событие.
Анализ документа является однонаправленным (без возвратов по дереву).
SAX-парсер
В отличие от DOM формальной спецификации для SAX не существует. Java реализация SAX рассматривается как нормативная.
Достоинства SAX:
Затраты памяти существенно меньше (зависит от максимальной глубины дерева документа и количества атрибутов в узле элемента), чем в случае DOM (требуется хранить в памяти все дерево документа).
Скорость работы выше за счет сокращения затрат времени на выделение памяти для элементов дерева в случае DOM.
Потоковое чтение данных с диска в случае DOM невозможно. Если для размещения всего документа в памяти недостаточно места, то использование SAX является безальтернативным.
SAX-парсер
Недостатки SAX:
Процедура проверки правильности предполагает доступ ко всему документу одновременно.
Это также требуется и в случае XSLT преобразования.
XSL vs. CSS
XSL (Extensible Stylesheet Language) — расширяемый язык таблиц стилей.
CSS и XSL — принципиально разные технологии, имеющие лишь частичное пресечение областей применения.
CSS-форматирование применяется к HTML-документу браузером на клиентской стороне, а XSL-преобразование выполняется, как правило, на сервере, после чего результат отправляется браузеру клиента.
XSL базируется на XML, благодаря чему XSL более гибок, универсален. У разработчиков имеется возможность использования средств контроля за корректностью составления стилевых списков (используя схемы XML).
Структура XSL
С помощью XSL можно преобразовать XML-документ в формат HTML, WML, RTF, PDF, SQL, SWF, а так же в другой XML и XSL документ.
XSL указывает как будет оформлен документ, где и каким образом должны размещаться данные.
Cпецификация XSL состоит из трех частей:
XSLT (XSL Transformations), язык для преобразования XML;
XPath - язык путей и выражений, используемый в XSLT для доступа к отдельным частям XML-документа;
XSL-FO (XSL Formatting Objects), язык для верстки XML.
Структура XSL
Наиболее распространенным механизмом XSLT преобразований для систем, базирующихся на Microsoft Windows является MSXML; для систем на основе GNU — xsltproc.
Для того, чтобы обработать XML документ c помощью XSL, необходимо в XML документе написать следующую инструкцию:
В результате применения таблицы стилей XSLT, состоящей из набора шаблонов, к XML-документу (исходное дерево) образуется конечное дерево, которое может быть другой XML-структурой, HTML-документом или обычным текстом. Правила выбора данных из исходного дерева записываются на языке запросов XPath.
XSLT применяется в основном в веб-программировании и для генерации отчётов.
XSLT реализует отделение данных от их представления в рамках