Java Advanced Введение в XML. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Введение в XML Содержание 1.XML 2.Пространства имен 3.SAX 4.DOM 5.Заключение.

Презентация:



Advertisements
Похожие презентации
Java Advanced Введение в XML. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Введение в XML Содержание 1.XML 2.Пространства имен 3.SAX 4.DOM 5.Заключение.
Advertisements

Java Advanced XML Transformations 1.0 (XSLT 1.0).
Java Advanced Описание и проверка структуры XML. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Описание и проверка структуры XML Содержание 1.DTD 2.XML.
Современные языки и технологии программирования Введение в XML.
Урок повторения по теме: «Сила». Задание 1 Задание 2.
SAX Simple API for XML Презентацию подготовила Иванова Анна, гр. 950б.
1. Определить последовательность проезда перекрестка
Michael Jackson
Школьная форма Презентация для родительского собрания.
XML и XSLT (2) Матросов Александр Васильевич Санкт-Петербургский государственный университет.
Разработал: Учитель химии, биологии высшей квалификационной категории Баженов Алексей Анатольевич.
XML Extensible Markup Language вторник, 26 ноября 2013 г.вторник, 26 ноября 2013 г.вторник, 26 ноября 2013 г.вторник, 26 ноября 2013 г.вторник, 26 ноября.
Ребусы Свириденковой Лизы Ученицы 6 класса «А». 10.
Масштаб 1 : 5000 Приложение 1 к решению Совета депутатов города Новосибирска от _____________ ______.
Современные языки и технологии программирования Использование XML.
Лекция 11 Листы стилей XML Язык XSL позволяет преобразовывать XML- документы в документы других типов, а также задает порядок их форматирования. Принципы.
Java Advanced XML Path Language 1.0 (XPath 1.0). 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / XPath 1.0 Содержание 1.Введение 2.Пути 3.Выражения 4.Функции.
COLLADA COLLAborative Design Activity Клишин Алексей, 8409.
Структура XML-документов По материалам курса University of Washington
Типовые расчёты Растворы
Транксрипт:

Java Advanced Введение в XML

2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Введение в XML Содержание 1.XML 2.Пространства имен 3.SAX 4.DOM 5.Заключение

XML Часть 1

4Georgiy KorneevJava Advanced / Введение в XML eXtensible Markup Language XML – текстовый язык хранения структурированных данных Предшественники XML Standard Generalized Markup Language (SGML) Hyper Text Markup Language (HTML)

5Georgiy KorneevJava Advanced / Введение в XML Составляющие XML-документа Элементы (element) – задают структуру элемента Атрибуты (attribute) – дополняют информацию об элементе Символьные данные (character data) – текст внутри элемента Указания по обработке (processing instruction) – применяются разборщиками и другими программами Комментарии (comment) – игнорируются

6Georgiy KorneevJava Advanced / Введение в XML Элемент Структура Имя Дети Атрибуты Синтаксис Дети Сокращенный

7Georgiy KorneevJava Advanced / Введение в XML Атрибут Структура Имя Значение Синтаксис имя = "значение" или имя = 'значение'

8Georgiy KorneevJava Advanced / Введение в XML Пример: элементы и атрибуты Описание книги

9Georgiy KorneevJava Advanced / Введение в XML XML-идентификаторы Первый символ Буква, `_` или `:` Последующие символы Первый символ, цифра, `-`или `.` Примеры hello HelloWorld HelloWorld156Times hello-world hello.world

10Georgiy KorneevJava Advanced / Введение в XML Символьные данные Простые символы Пример: Привет! Именованные ссылки &название; Пример: Пусть a < b и b < c, тогда a < c Указание кода символа &#НомерСимвола; &#xШестнадцатеричныйНомерСимвола; Пример: A A

11Georgiy KorneevJava Advanced / Введение в XML Именованные ссылки Значения по умолчанию &&ampersand <greater than ""quotes ''apostrophe

12Georgiy KorneevJava Advanced / Введение в XML Пробелы и переводы строк Пробельные символы #x20 Пробел #x9Табуляция #xAПеревод строки Другие переводы строк #xDвозврат каретки #x85перевод строки (IBM) #x2028перевод строки (Unicode) #xD #xAперевод строки (DOS) #xD #x85

13Georgiy KorneevJava Advanced / Введение в XML Блоки символьных данных Синтаксис Примеры ' "]]> ]]>

14Georgiy KorneevJava Advanced / Введение в XML Указания по обработке Структура Имя Значение Синтаксис

15Georgiy KorneevJava Advanced / Введение в XML Комментарии Синтаксис Примеры

16Georgiy KorneevJava Advanced / Введение в XML Общая структура XML-документа Пролог Заголовок Тип документа Комментарии и указания по обработке Корневой элемент Эпилог Комментарии и указания по обработке

17Georgiy KorneevJava Advanced / Введение в XML Заголовок XML-файла (1) Позволяет указывать версию языка XML и кодировку, в которой записан файл Синтаксис Пример Версия 1.1, кодировка 1251 (Windows Russian)

18Georgiy KorneevJava Advanced / Введение в XML Заголовок XML-файла (2) Версии XML 1.0 (пять редакций), версия по умолчанию 1.1 (две редакции) Примеры UTF-8 – версия по умолчанию UTF-16 – при наличии byte-order mark Другие кодировки могут не поддерживаться WINDOWS-1251 Cp866

Пространства имен Часть 2

20Georgiy KorneevJava Advanced / Введение в XML Пространства имен Позволяют одновременно использовать одинаковые имена, придуманные разными людьми Пространство имен идентифицируется URI

21Georgiy KorneevJava Advanced / Введение в XML Указание пространства имен Структура Полное имя (qualified name) Пространство имен (namespace) Локальное имя (local name) Префикс (prefix) Имя имеет вид префикс:локальноеИмя Пространства имен связываются с префиксами с помощью атрибутов вида xmlns:префикс = "пространство имен"

22Georgiy KorneevJava Advanced / Введение в XML Пример: пространства имен Описание книги …

23Georgiy KorneevJava Advanced / Введение в XML Область действия префикса От элемента для которого определено отображение префикса вниз по дереву, до элементов для которых указано новое отображение этих префиксов Действие префикса можно отменить, указав отображение на пустую строку

24Georgiy KorneevJava Advanced / Введение в XML Пространство имен по умолчанию Применяется для элементов для которых не указано пространство имен Объявление xmlns="пространство имен"

25Georgiy KorneevJava Advanced / Введение в XML Пример: пространства имен по умолчанию Описание книги …

SAX Часть 3

27Georgiy KorneevJava Advanced / Введение в XML Simple API for XML Представляет XML-документ в виде последовательности событий Пакеты org.xml.sax – модель SAX java.xml.parsers – разборщики

28Georgiy KorneevJava Advanced / Введение в XML Разбор XML Интерфейс XMLReader Методы parse(InputSource) – разобрать XML-документ setContentHandler(ContentHandler) – устанавливает приемник событий setErrorHandler(ErrorHandler) – установить обработчик ошибок setFeature(name, value) – установить настройку setProperty(name, value) – установить свойство

29Georgiy KorneevJava Advanced / Введение в XML Источники данных Класс InputSource Конструкторы InputSource(InputStream) – из байтового потока InputSource(Reader) – из символьного потока InputSource(systemId) – по URL

30Georgiy KorneevJava Advanced / Введение в XML Обработчик событий (1) Интерфейс ContentHandler Класс DefaultHandler Методы setDocumentLocator(Locator locator) – установить источник местоположения startDocument() – начало документа endDocument() – конец документа startElement(ns, localName, qName, Attributes) – открывающий тег элемента endElement(ns, localName, qName) – закрывающий тег элемента

31Georgiy KorneevJava Advanced / Введение в XML Обработчик событий (2) Методы characters(char[] ch, offset, len) – последовательность символов ignorableWhitespace(char[] ch, offset, len) – последовательность пробельных символов processingInstruction(prefix, data) – рекомендация по обработке startPrefixMapping(prefix, uri) – начало области использование префикса endPrefixMapping(prefix, uri) – окончание области использование префикса

32Georgiy KorneevJava Advanced / Введение в XML Атрибуты Интерфейс Attributes Методы getLength() – количество атрибутов getLocalName(index) – локальное имя getQName(index) – полное имя getURI(index) – пространство имен getValue(index) – получить значение по индексу getValue(qName) – получить значение по полному имени getValue(ns, localName) – получить значение по пространству имен и локальному имени

33Georgiy KorneevJava Advanced / Введение в XML Информация о местоположении Интерфейс Locator Методы getLineNumber() – номер строки getColumnNumber() – номер столбца getSystemId() – URL разбираемого файла

34Georgiy KorneevJava Advanced / Введение в XML Обработка ошибок Интерфейс ErrorHandler Методы error(SAXParseException) – сообщение об исправимой ошибке fatalError(SAXParseException) – сообщение о неисправимой ошибке warning(SAXParseException) – сообщение о предупреждении

35Georgiy KorneevJava Advanced / Введение в XML Исключения Класс SAXException Методы getLineNumber() – номер строки getColumnNumber() – номер столбца getSystemId() – URL разбираемого файла

36Georgiy KorneevJava Advanced / Введение в XML Создание SAXParser Класс SAXParserFactory Методы static newInstance() – создать фабрику newSAXParser() – создать разборщик setFeature(uri, value) – установить настройку setProperty(name, value) – установить свойство setNamespaceAware(value) – установить поддержку пространств имен Класс SAXParser implements XMLReader

DOM Часть 4

38Georgiy KorneevJava Advanced / Введение в XML Document Object Model Представляет XML-документ в виде дерева узлов Пакеты org.w3c.dom – модель DOM java.xml.parsers – разборщики

39Georgiy KorneevJava Advanced / Введение в XML Узлы Интерфейс Node Структура узла getLocalName() – локальное имя getNamespaceURI() – пространство имен getPrefix() – префикс getNodeName() – имя узла getNodeValue() – значение узла getNodeType() – тип узла

40Georgiy KorneevJava Advanced / Введение в XML Типы узлов ИнтерфейсОписаниеИмяЗначение AttrАтрибутИмяЗначение CDATASectionБлок символов#cdata-sectionСодержание CommentКомментарий#commentСодержание DocumentДокумент#document ElementЭлементИмя ProcessingInst ruction Рекомендация по обработке ИмяЗначение TextТекст#textСодержание

41Georgiy KorneevJava Advanced / Введение в XML Навигация по узлам Интерфейс Node Структура узла getNextSibling() – предыдущий брат getPreviousSibling() – следующий брат getFirstChild() – первый ребенок getLastChild() – последний ребенок getParentNode() – родитель

42Georgiy KorneevJava Advanced / Введение в XML Атрибуты Методы интерфейса Node hasAttributes() – проверить наличие атрибутов getAttributes() – получить атрибуты Интерфейс NamedNodeMap Методы getLength() – количество элементов item(index) – узел по индексу getNamedItem(name) – узел по имени getNamesItemNS(namespace, localName) – узел по имени и пространству имен

43Georgiy KorneevJava Advanced / Введение в XML Вложенные узлы Методы интерфейса Node hasChildNodes() – проверить наличие детей getChildNodes() – получить детей Интерфейс NodeList Методы getLength() – количество элементов item(index) – элемент по индексу

44Georgiy KorneevJava Advanced / Введение в XML Элементы Интерфейс Element Методы Работа с атрибутами getAttribute(name) – получить значение атрбута Работа с вложенными элементами getElementsByTagName(name) – получить всех потомков с заданным именем

45Georgiy KorneevJava Advanced / Введение в XML Разбор XML в DOM Класс DocumentBuilder Методы parse(File | InputStream | InputSource | URI) – построить документ isNamespaceAware() – поддерживает ли пространства имен

46Georgiy KorneevJava Advanced / Введение в XML Создание DocumentBuilder Класс DocumentBuilderFactory Методы static newInstance() – создать фабрику newDocumentBuilder() – создать DocumentBuilder setFeature(uri, value) – установить настройку setNamespaceAware(value) – установить поддержку пространств имен setIgnoringComments(value) – установить игнорирование комментариев setIgnoringElementContentWhitespace(value) – пропуск текстовых узлов из одних пробелов

47Georgiy KorneevJava Advanced / Введение в XML Построение XML через DOM Интерфейс Document createXXX(…) – создает элемент соответствующего типа Интерфейс Node appendChild(node) – добавляет узел removeChild(index) – удаляет узел

48Georgiy KorneevJava Advanced / Введение в XML Вывод DOM в файл Класс TransformerFactory Методы newInstance() – создать экземпляр фабрики newTransformer() – создать пустое преобразование Класс Transformer Метод transform(Source, Result) – преобразовать документ Класс DOMSource Класс StreamResult

Заключение Часть 6

50Georgiy KorneevJava Advanced / Введение в XML Ссылки (1) Extensible Markup Language 1.1 // / / XML Information Set // / / Namespaces in XML 1.1 // names / names /

51Georgiy KorneevJava Advanced / Введение в XML Ссылки (2) Document Object Model Level 3 Core Specification // 3-Core Core SAX Project // Java API for XML Processing //

52 СПбГУ ИТМО Georgiy KorneevJava Advanced / Введение в XML Вопросы