Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы_отредактированные.docx
Скачиваний:
30
Добавлен:
21.09.2019
Размер:
3.19 Mб
Скачать
  1. Что такое sax?

SAX предоставляет стандартный набор методов для программного манипулирования данными и структурным содержанием экземпляра документа XML.

SAX — это еще один способ обработки частей документа XML и доступа к ним.

Интерфейсы анализаторов XML можно рассматривать как модели документов, представленных на языке XML. Модель, в которой документ XML рассматривается как дерево, называется Document Object Model (DOM), а модель, в которой с документом XML работают как со строкой символов, – the Simple API for XML (SAX).

Callbacks

SAX работает посредством функций обратного вызова (callback): в программе вызывается parser, вызовы callback – это события, происходящие в процессе просмотра

Программа с интерфейсом SAX

Методы синтаксического анализатора SAX

Метод

Описание

documentLocator

Метод, возвращающий имя файла, путь или URL обрабатываемого документа XML

startDocument

Метод, вызываемый при достижении обработчиком начала объекта

XMLdocument

endDocument

Метод, вызываемый при достижении обработчиком конца объекта

XMLdocument

startElement

Метод, вызываемый при достижении обработчиком открывающего дескриптора элемента

endElement

Метод, вызываемый при достижении обработчиком закрывающего дескриптора элемента

characters

Метод, вызываемый при достижении обработчиком текстовых данных или знаков пробела

processing Instruction

Метод, вызываемый при обнаружении инструкции обработки

Difference between SAX and DOM

  • DOM reads the entire XML document into memory and stores it as a tree data structure

  • SAX reads the XML document and calls one of your methods for each element or block of text that it encounters

  • Consequences:

    • DOM provides “random access” into the XML document

    • SAX provides only sequential access to the XML document

    • DOM is slow and requires huge amounts of memory, so it cannot be used for large XML documents

    • SAX is fast and requires very little memory, so it can be used for huge documents (or large numbers of documents)

      • This makes SAX much more popular for web sites

    • Some DOM implementations have methods for changing the XML document in memory; SAX implementations do not

Популярные синтаксические анализаторы XML

Синтаксический анализатор

Onucание

MSXML3.0

Этот анализатор компании Microsoft поддерживает стандарты SAX и DOM, а также ряд других технологий XML. Доступен для загрузки с Web-узла

http: //msdn .microsoft. com/xml

MSXML 6.0

MSXML 6 от компании Microsoft обладает улучшенной поддержкой технологий XML, включая интеграциюЗАХ и Dom, что позволяет вызывать события SAX объекта DOMobject, а также создавать объекты SAX на основе узлов DOM. Синтаксический анализатор MSXML 6.0 доступен для загрузки с Web-узла http://msdn.microsoft.com/xml

Xerces

Это программный продукт, разработанный организацией Apache Software Foundation1, очень эффективный синтаксический анализатор, поддерживающий стандарты SAX и DOM. Доступен для загрузки с Web-узла

http: //www. apache .org. Xerces платформно-независим, поскольку написан на Java и распространяется бесплатно

JAXP

Это синтаксический анализатор, разработанный компанией Sun Microsystems; поддерживает стандарты SAX и DOM, Доступен для загрузки с Web-узла

http://java.sun.com/xml. JAXP написан на Java, что делает его платформно-независимым

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

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

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

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

SAX 2.0 (Simple API for XML)

Когда мы не собираемся работать со структурой xml документа, добавлять и удалять элементы и т.п., построение дерева DOM объектов парсером излишне. На это тратиться время и память.

Для подобных случаев предусмотрен упрощенный API для разбора xml документа основанный на событиях разбора. Например, пусть парсер встретил начало xml элемента, т.е. открывающий тег. Тогда парсер генерит соответствующее событие. Далее приложение по своему усмотрению может обработать его на основе полученной информации, например, имени элемента.