Слайд 17XML Schema Предназначена для того же, что и DTD Для описания правил
используется непосредственно XML Имеет более гибкие возможности, чем DTD Расширяема Более гибкие возможности Есть
понятие типа данных Есть понятие пространства имен Сложнее в восприятии и программировании средств, ее обрабатывающих www.w3.org/XML/Schema
http://www.w3schools.com/Schema/default.asp
Слайд 18Поддержка типов данных Проще описывать допустимое содержимое документа Проще проверять корректность данных Проще
накладывать ограничения на данные Проще определять формат данных
Слайд 19XML Schema описывается на XML Не требуется изучение еще одного языка Вы
можете использовать свой любимый XML-редактор для работы со схемой Вы можете
работать со схемой программно Вы можете изменять свою схему с помощью XSLT
Слайд 23Extensible Stylesheet Language (XSL) Комплекс технологий, связанных с преобразованием и представлением
XML-документов Обычно используется для преобразования документов в XML, HTML, текст и
PDF (XSL-FO) XSL Transformations (XSLT) – язык, на котором описываются правила преобразования XPath – язык, позволяющий формулировать используемые в процессе преобразования выражения, использующие различные фрагменты документа http://www.w3.org/Style/XSL/
http://www.w3schools.com/xsl/
Слайд 24XPath Вспомогательный язык, позволяющий обращаться к элементам документа Имя элемента представляется в
виде пути
/bookstore/book/title Обращение может происходить и к атрибутам http://www.w3.org/TR/xpath
http://www.w3schools.com/Xpath/default.asp
System.out.println("Nick Name: " + new String(ch, start, length));
bnname = false; } if (bsalary) { System.out.println("Salary: " + new String(ch, start, length)); bsalary = false; } } };
saxParser.parse("xmlfile.xml", handler);
} catch (Exception e) { e.printStackTrace(); } }
Слайд 44Пример. Результат Start Element: company Start Element: staff Start Element: firstname First Name: Tom End
Element: firstname Start Element: lastname Last Name: King End Element: lastname Start Element: nickname Nick
Name: Boss End Element: nickname Start Element: salary Salary: 100500 End Element: salary End Element: staff ...
... Start Element: staff Start Element: firstname First Name: Ben End Element: firstname Start Element: lastname Last Name: Gum End Element: lastname Start Element: nickname Nick Name: Bubble End Element: nickname Start Element: salary Salary: 100000 End Element: salary End Element: staff End Element: company
Слайд 45Работа с DOM Считывание документа, опять же, реализует транслятор
Результат считывания возвращается
в виде дерева объектов, реализующих интерфейс org.w3c.dom.Node
Дальнейшая обработка ведется
уже на уровне бизнес-логики
Слайд 46Пакет org.w3c.dom Базовый интерфейс Node, содержит основные методы работы с узлом От
него наследуют специфические интерфейсы для конкретных видов узлов: Document Element Text Comment Attr и др. Каждый интерфейс
добавляет новую функциональность (например Document, является фабрикой для создания остальных узлов)
Слайд 47Пакет javax.xml.parsers Класс DocumentBuilderFactory
Образец проектирования Singleton, позволяет настроить и получить экземпляр
фабрики для производства DocumentBuilder
Класс DocumentBuilder
Непосредственно транслятор, экземпляры получаются от фабрики
// Вспомогательные действия, связанные с тем, что такая // элементарная трансформация не "копирует" директиву // !DOCTYPE. В зависимости от PUBLIC- или SYSTEM-описания DTD, // можно использовать разные свойства transformer'а
Source text = new StreamSource(new File("catalog.xml")); transformer.transform(text, new StreamResult(new File("out.xml"))); } }
Слайд 59Размышления на тему Итак, что мы научились делать: Считывать информацию из XML-документов SAX DOM Записывать
информацию в XML-документы Какой еще инструмент был бы удобен?.. А если бы
мы умели записывать и считывать из XML непосредственно объекты Java?..
Слайд 60Шаг 1. Сохранение JavaBeans В версии JavaSE 1.4 для объектов JavaBeans
появились механизмы, сходные с сериализацией Реализовывали их классы java.beans.XMLEncoder и java.beans.XMLDecoder Недостаток:
механизм основан на интроспекции, требует соблюдения правил именования и т.д.
Слайд 61Пример. Часть 1 XMLEncoder e = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream("Test.xml")));
e.writeObject(new JButton("Hello, world")); e.close();
true
Слайд 63Шаг 2. Java Architecture for XML Binding (JAXB) В версии JavaSE
1.5 появились новые механизмы JAXB Связанные с ними классы находятся в
пакете javax.xml.bind Позволяют производить «сериализацию» объектов и их структур в XML Классы объектов должны быть специальным образом подготовлены Активно использует механизм аннотаций…
Слайд 73Дополнительные источники Арнолд, К. Язык программирования Java [Текст] / Кен Арнолд,
Джеймс Гослинг, Дэвид Холмс. – М. : Издательский дом «Вильямс»,
2001. – 624 с. Вязовик, Н.А. Программирование на Java. Курс лекций [Текст] / Н.А. Вязовик. – М. : Интернет-университет информационных технологий, 2003. – 592 с. Эккель, Б. Философия Java [Текст] / Брюс Эккель. – СПб. : Питер, 2011. – 640 с. Шилдт, Г. Java 2, v5.0 (Tiger). Новые возможности [Текст] / Герберт Шилдт. – СПб. : БХВ-Петербург, 2005. – 206 с. JavaSE at a Glance [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/overview/index.html, дата доступа: 21.10.2011. JavaSE APIs & Documentation [Электронный ресурс]. – Режим доступа: http://www.oracle.com/technetwork/java/javase/documentation/api-jsp-136079.html, дата доступа: 21.10.2011.
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания: