12
SAX Simple API for XML Презентацию подготовила Иванова Анна, гр. 950б

SAX

  • Upload
    landen

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

SAX. Simple API for XML. Презентацию подготовила Иванова Анна, гр. 950б. Что такое SAX ???. SAX – это открытый стандарт для обработки документов XML , базирующийся на событиях. SAX - c пособ обработки отдельных частей документа XML и доступа к ним. - PowerPoint PPT Presentation

Citation preview

Page 1: SAX

SAXSimple API for XML

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

Page 2: SAX

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

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

идентифицируется, после чего вызывается соответствующее событие.

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

– Нельзя создать XML документ с нуля.

Page 3: SAX

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

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

Page 4: SAX

Пример.< ? 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. Конец документа.

Page 5: SAX

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

1. Обработка больших документов.При работе SAX требуемый объем памяти не возрастает вместе с увеличением размера обрабатываемого файла.

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

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

Page 6: SAX

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

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

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

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

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

Page 7: SAX

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

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

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

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

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

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

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

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

Page 8: SAX

SAX и JAVA.

Page 9: SAX

Импортирование классов.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

Page 10: SAX

Класс HendlerBase.Реализует четыре интерфейса из org.xml.sax.DocumentHandler – обрабатывает события по мере их

появления во время обработки документа.

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

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

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

Page 11: SAX

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

документа синтаксическому анализатору SAX.

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

endDocumentstartElement (имя элемента, список аттрибутов)

еndElement (имя элемента)

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

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

Page 12: SAX

Компиляция.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