Главная · Карта сайта · Поиск · Статьи · Компьютерные курсы · Обучающие программы · Открытые проекты · Веб-программирование · Создание интернет-сайта · Полезные ссылки · Глоссарий · Контакты · Декабрь 06 2016 22:53:03
Последнее опубликованное

Что такое Model-View-Controller
Pattern Model-View-Controller

Как создать свой веб-сайт
Как создать свой сайт в интернете

Разное
Статистика

Способы обработки XML


Сравнение методов обработки XML: DOM vs SAX

Программная обработка XML: DOM vs SAX

В этом разделе речь пойдет о двух основных подходах к обработке XML документов: DOM и SAX. DOM (Document Object Model) – это технология, основанная на формировании в оперативной памяти иерархических структур данных, соответствующих всему XML документу. DOM, как следует из самой аббревиатуры - это построение объектной модели документа (все элементы и их атрибуты представляются в памяти отдельными объектами), в то время, как SAX (Simple API for XML) - это анализ содержимого XML документа в процессе последовательного чтения данных файла. Другими словами, SAX - это простейший интерфейс обработки XML, не требующий дополнительных "накладных расходов". Эти два подхода не конкурируют между собой, а дополняют друг друга, поскольку их достоинства и недостатки практически не пересекаются.

Сравнение технологий DOM и SAX

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

Преимущества XML DOM:

  • Простота. Все узлы XML документа доступны сразу. Легко выполнять поиск узлов с использованием XPath.

  • Можно добавлять, удалять, перемещать узлы, выполнять прочие операции редактирования, будучи уверенным, что результатом будет well-formed XML документ.

Преимущества SAX:

  • Экономия памяти. Анализаторы, работающие таким образом, как правило, не используют много памяти, поскольку не порождают в ней никаких лишних структур данных. Разработчик контролирует процесс разбора документа и анализирует его содержимое, обрабатывая события (обратные вызовы) анализатора. Параметрами этих событий являются имя текущего элемента, его тип, пространство имен и т.д.

  • Эффективный и быстрый поиск нужных вам фрагментов, который достигается, опять же, за счет более эффективного использования памяти и вашего личного контроля над его окончанием.

Рекомендации по выбору технологии обработки XML

Когда нужно применять XML DOM:

  • Вы используете XML для хранения кэша данных. Содержимое этого кэша может постоянно меняться в процессе выполнения программы.

  • Объемы документов XML, с которыми вы имеете дело, невелики. Вам важна прозрачность и наглядность программного кода формирования XML документов. Скорость выполнения XPath запросов вас вполне устраивает.

  • Вам необходимо сформировать отчет небольших размеров с последующей его XSL трансформацией в оперативной памяти.

  • Вы используете XML, как некую прикладную структуру данных, например, для представления в памяти алгоритма работы вашего прикладного интерпретатора, кэша метаданных или любой другой сериализуемой структуры данных.

Когда нужно применять SAX:

  • Вам необходимо прочитать все или осуществить поиск только нужных вам данных из весьма объемного XML документа. Редактировать документ не требуется. Представление XML в виде объектной модели слишком велико.

  • Вам требуется преобразовать один большой XML документ в другой XML документ, но возможности XSL трансформации вас, по каким-либо причинам, не устраивают.

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


P.S.
Примеры кода, реализующие оба эти подхода обработки XML документов, вы можете найти здесь.



Компьютерные курсы и курсы программирования
Основы программирования

Курс для начинающих программистов на C# и VB.NET.

SQL 25™

Построение SQL запросов и работа с базой данных.

C# Quick Guide™

Программирование на C#. Краткое руководство.

RegEx

Применение регулярных выражений.

Plug-in архитектура

Примеры программной Plug-in архитектуры.

XML и его расширения

Язык разметки XML и его расширения с примерами.

HTML и разметка гипертекста

Языки HTML, XHTML и CSS с примерами разметки.

Основы веб-дизайна

Основы веб-дизайна: решения типовых задач верстки.

Программирование на PHP

Руководство по программированию на PHP для начинающих.

Справочные материалы

Шаблоны проектирования
Каталог шаблонов проектирования программных компонентов.

Рефакторинг кода
Каталог приемов рефакторинга программного кода.

Гость
Имя

Пароль



Забыли пароль?
Запросите новый здесь
.
Coding Craft. Все права защищены © 2011. Проект Инициативного Народного Фронта Образования - ИНФО-проект.