Модель SAX (Simple API for XML)

Download Report

Transcript Модель SAX (Simple API for XML)

SAX

Simple API for XML

Презентацию подготовила Иванова Анна, гр. 950б

Что такое SAX???

SAX

– это открытый стандарт для обработки документов XML, базирующийся на событиях.

SAX

- cпособ обработки отдельных документа XML и доступа к ним.

– частей Во время обработки документа каждая часть его идентифицируется, после чего вызывается соответствующее событие.

– Обрабатывает в память.

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

Синтаксические анализаторы SAX.

Синтаксические анализаторы SAX приводят к возникновению событий.

При обработки документа они вызывают Синтаксический разметки в методы после возникновения событий разметки.

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

Пример.

< ? xml version=“1.0” ? > < message from = “Aida” > Stop missing classes!!!!

К событиям, которые анализатором, относятся: можно получить 1. Начало документа.

2. Начало элемента (note и message).

3. Пара имя-значение атрибута (from=“Aida”)/ 4. Текстовые данные ( Stop missing classes!!! )/ 5. Конец элемента.

6. Конец документа.

синтаксическим

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

1. Обработка больших документов.

При работе SAX требуемый объем памяти не возрастает вместе с увеличением размера обрабатываемого файла.

2. Программное прерывание обработки документа .

SAX позволяет прервать обработку нахождения определенных сведений.

документа после 3. Извлечение небольших фрагментов информации.

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

Отрицательные стороны.

1. Произвольный доступ к документу.

SAX не позволяет загрузить весь документ в память, а обрабатывает данные последовательно.

Поэтому могут возникнуть сложности при произвольном доступе к узлам, между которыми существуют сложные отношения.

2. Сложная фильтрация при извлечении данных.

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

3. Создание и изменение документа XML.

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

4. Пробелы.

SAX учитывает все знаки пробелов . А значит каждый знак пробела вызывает соответствующее событие

documentLocator

-

startDocument endDocument startElement – endElement – сharacters –

Методы, вызываемые при обработке событий SAX.

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

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

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

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

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

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

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

SAX и JAVA.

Импортирование классов.

import java.io. *; // управление данными через потоки ввода-вывода import org.xml.sax. *; // классы и программные интерфейсы для синтаксических анализаторов SAX import javax.xml.parsers.SAXParserFactory

//для инициализации синтаксического анализатора для проверки документов с использованием схем DOM import java.xml.parsers.ParserConfigurationExeption

//для обработки ошибки в том случае, если синтаксический анализатор не удалось должным образом инициализировать import java.xml.parsers.SaxParser

//для инициализации объекта синтаксического анализатора SAX

Класс HendlerBase.

Реализует четыре интерфейса из org.xml.sax.

DocumentHandler – обрабатывает события по мере их появления во время обработки документа.

DTDHandler – обрабатывает ссылки в соответствующей схеме DTD.

EntityReference ErrorHandler – обрабатывает любые внешние ссылки.

– обрабатывает любые ошибки, возникшие при обработке ошибок.

Методы SAX.

setDocumentLocator – для указания адреса URL обрабатываемого документа синтаксическому анализатору SAX.

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

endDocument startElement (имя элемента, список аттрибутов) еndElement (имя элемента) сharacter (буфер, значение смещения символов, длина строки) – обработка текстовых данных.

processingInstruction (название системы, значение, передаваемое инструкцией обработки) – инструкция обработки.

Компиляция.

Name of document : file:C:/SAX/message1.xml

SAX Event – Start of Document SAX Event – Element Start: note SAX Event – Characters: SAX Event – Characters: SAX Event – Element Start: message SAX Event – Attribute: from=“Aida” SAX Event – Characters: SAX Event – Characters: Stop missing classes!!!

SAX Event – Characters: SAX Event – Characters: SAX Event – Element End: message SAX Event – Characters: SAX Event – Element End: note SAX Event –End of Document