View
39
Download
0
Category
Preview:
DESCRIPTION
SAX. Simple API for XML. Презентацию подготовила Иванова Анна, гр. 950б. Что такое SAX ???. SAX – это открытый стандарт для обработки документов XML , базирующийся на событиях. SAX - c пособ обработки отдельных частей документа XML и доступа к ним. - PowerPoint PPT Presentation
Citation preview
SAXSimple API for XML
Презентацию подготовила Иванова Анна, гр. 950б
Что такое SAX???
SAX – это открытый стандарт для обработки документов XML, базирующийся на событиях.SAX - cпособ обработки отдельных частей документа XML и доступа к ним.– Во время обработки документа каждая часть его
идентифицируется, после чего вызывается соответствующее событие.
– Обрабатывает каждый элемент разметки, как отдельное событие, не требуя загрузки всего документа в память.
– Нельзя создать XML документ с нуля.
Синтаксические анализаторы SAX.
Синтаксические анализаторы SAX приводят к возникновению событий. При обработки документа они вызывают методы после возникновения событий разметки. Синтаксический анализатор проектируется так, чтобы считывать и распознавать уникальные знаки разметки в потоке данных, образующих XML документ.
Пример.< ? xml version=“1.0” ? ><note>
< message from = “Aida” >Stop missing classes!!!!
</message></note>
К событиям, которые можно получить синтаксическим анализатором, относятся:
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 учитывает все знаки пробелов . А значит каждый знак пробела вызывает соответствующее событие
Методы, вызываемые при обработке событий SAX.
documentLocator - метод, возвращающий имя файла, путь или URL обрабатываемого документа XML.
startDocument - метод, вызываемый при достижении обработчика начала объекта XMLdocument.
endDocument - метод, вызываемый при достижении обработчиком конца объекта XMLdocument.
startElement – метод, вызываемый при достижении обработчиком открывающегося дескриптора элемента.
endElement – метод, вызываемый при достижении обработчиком закрывающегося дескриптора элемента.
сharacters – метод, вызываемый обработчиком при достижении текстовых данных или знаков пробела.
processingInstruction – метод, вызываемый при обнаружении инструкции обработки.
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 сообщить о том, что он обнаружил начало документа. Это событие происходит всего один раз для каждого экземпляра документа.
endDocumentstartElement (имя элемента, список аттрибутов)
еndElement (имя элемента)
сharacter (буфер, значение смещения символов, длина строки) – обработка текстовых данных.
processingInstruction (название системы, значение, передаваемое инструкцией обработки) – инструкция обработки.
Компиляция.Name of document : file:C:/SAX/message1.xmlSAX Event – Start of DocumentSAX Event – Element Start: noteSAX Event – Characters:SAX Event – Characters:SAX Event – Element Start: messageSAX Event – Attribute: from=“Aida”SAX Event – Characters:SAX Event – Characters: Stop missing classes!!!SAX Event – Characters:SAX Event – Characters:SAX Event – Element End: messageSAX Event – Characters:SAX Event – Element End: noteSAX Event –End of Document
Recommended