Современные языки и технологии программирования Использование XML.

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



Advertisements
Похожие презентации
Современные языки и технологии программирования Введение в XML.
Advertisements

Java Advanced Описание и проверка структуры XML. 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / Описание и проверка структуры XML Содержание 1.DTD 2.XML.
XML eXtensible Markup Language 1.Язык навигации внутри XML-документа (XPath) 2.Пространства имён (Namespaces) 3.Язык трансформаций (XSLT)
Java Advanced XML Transformations 1.0 (XSLT 1.0).
XSLT-ТРАНСФОРМАЦИЯ XML- ТЕХНОЛОГИИ Лекция 4. Трансформация XML- данных Категории трансформации Структурные трансформации – трансформация одного словаря.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 14. тема: XML-ТЕХНОЛОГИИ В БАЗАХ ДАННЫХ.
XML eXtensible Markup Language 1.Пространства имён (Namespaces) 2.Язык навигации внутри XML-документа (XPath)
XML eXtensible Markup Language 1.Определение типа документов (DTD) 2.Язык навигации внутри XML-документа (XPath)
XSL eXtensible Stylesheet Language среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря.
Java Advanced XML Path Language 1.0 (XPath 1.0). 2 СПбГУ ИТМО Georgiy KorneevJava Advanced / XPath 1.0 Содержание 1.Введение 2.Пути 3.Выражения 4.Функции.
Язык запросов XML. XML (Extensible Markup Language) - это новый SGML-производный язык разметки документов, позволяющий структурировать информацию разного.
Презентацию подготовила Шигаева Алена, гр.950б. Это расширяемый язык таблиц стилей. Язык XSL фактически состоит из двух частей: языка преобразований и.
WEB- ТЕХНОЛОГИИ Лекция 4. Задача преобразования XML- данных 1 Задача преобразования Для передачи данных между разными приложениями необходимо преобразовать.
XSD XML Schema Definition среда, 27 ноября 2013 г.среда, 27 ноября 2013 г.среда, 27 ноября 2013 г.среда, 27 ноября 2013 г.среда, 27 ноября 2013 г.
Программный доступ к XML DOM, SAX,.NET среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря.
WEB- ТЕХНОЛОГИИ Лекция 2. Задача обмена данными 1 Форматы обмена данными : Текстовый CSV (Comma Separated Values) Локальные XML.
Инструменты VS 2010 для работы с XML языком XML редактор. XSLT отладчик XSLT Profiler, инструмент позволяющий разработчикам измерять, оценивать и решать.
Автоматическая обработка естественного языка I. Обработка письменного текста.
XPath выступает в роли подъязыка преобразований XSLT и XPointer. Выражение XPath используется для манипуляции строками, в числовых выражениях, а также.
XML- технологии Лекция 3 XPath- адресация. Что такое XPath? XPath - это синтаксис для адресации частей XML- документа XPath использует пути для адресации.
Транксрипт:

Современные языки и технологии программирования Использование XML

Пространства имен XML computer scientist mathematician cryptographer ]]>

Пространство имен по умолчанию для элемента computer scientist mathematician cryptographer ]]>

Схема документа (XSD) Формальное описание валидного XML документа Более мощное и выразительное средство по сравнению с DTD Может определять комплексные ограничения на элементы и их атрибуты Для валидации документа может использоваться несколько схем Формат XSD сам по себе имеет структуру XML

Схема XML - возможности Вложенность элементов Ограничения на присутствие элементов Разрешенные атрибуты Типы атрибутов и значения по умолчанию Простые и сложные типы данных Наследование типов Точные ограничения на количество вложенных дочерних элементов Учитываются пространства имен

Проверка XML по схеме SAXParserFactory f = SAXParserFactory.newInstance(); f.setValidating(false); f.setNamespaceAware(true); SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_ NS_URI); Schema s = schemaFactory.newSchema( new File("src/famous.xsd )); f.setSchema(s); SAXParser p = f.newSAXParser(); p.parse(new FileInputStream(args[0]), new MyContentHandler());

XSL, XSLT, XPath Extensible Stylesheet Language (XSL): XSL-FO (Formatted Objects) - стандарт описывающий форматирование и представление объектов XSLT трансформация XML – язык, основанный на правилах («если-то») XPath – средство определения пути и выборки XML докуентов, используемое в XSL/XSLT, XPointer

XPath Выражение для выборки узлов XML: Корневого элемента ( / ) Определенного элемента (/name) Текста ( text() ) Атрибута ( ) Комментария ( comment() ) Инструкции обработки (processing_instruction()) Пространства имен( famous:profession)

Примеры выражений XPath./name profession /person.//profession famous:biography. – текущий узел (не путать с элементом!!!).. – родительский узел [] – предикат some_function() – функция над текущим узлом /some/path – абсолютный путь some/path – относительный путь от – любой узел - атрибут * – любой узел – элемент node() – любой узел

XSLT - трансформация Определяет набор правил преобразования XML документа Все правила применяются рекурсивно Выбор правила осуществляется на основе XPath либо явным вызовом по имени Может быть оптимизирован под вывод текста, HTML, XML Поддерживает условные выражения

Использование XSLT DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = f.newDocumentBuilder(); Document doc = builder.parse(new InputSource(new FileReader(args[0]))); StreamSource style = new StreamSource(new File("src/famoushtml.xsl")); TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(style); t.transform(new DOMSource(doc), new StreamResult(new FileOutputStream( "res.html")));

XLink – простая ссылка The Wonderful Wizard of Oz L. Frank Baum 1900 XPointer – ссылка вместе с XPath

XLink – сложная ссылка The Wonderful Wizard of Oz L. Frank Baum 1900

JAXB – XML binding = "ISPAEntity", propOrder = { "account", "info", "phone" }) public class ISPAEntity = true) protected Long = true) protected String = true) protected String phone; }

Использование JAXB Генерация кода xjc -p com.mypackage -d gen/ myschema.xsd Использование JaxbContext jc = JAXBContext.newInstance(com.mypackage"); Unmarshaller u = jc.createUnmarshaller(); JAXBElement poElement = (JAXBElement ) u.unmarshal(new StringReader(source)); MyClass response=(MyClass) poElement.getValue();

Задача 1.Определить схему XSD 2.Валидировать на основе схемы 3 3.Определить стиль XSL для трансформации в HTML 4.Трансформировать в HTML 5.Расширить схему XSD декларациями JAXB 6.Сгенерировать XJC классы-обертки для JAXB 7.Попробовать работать с документом через объекты JAXB