XML eXtensible Markup Language 1.Пространства имён (Namespaces) 2.Язык навигации внутри XML-документа (XPath)

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



Advertisements
Похожие презентации
XML eXtensible Markup Language 1.Язык навигации внутри XML-документа (XPath) 2.Пространства имён (Namespaces) 3.Язык трансформаций (XSLT)
Advertisements

XML eXtensible Markup Language 1.Определение типа документов (DTD) 2.Язык навигации внутри XML-документа (XPath)
XML- технологии Лекция 3 XPath- адресация. Что такое XPath? XPath - это синтаксис для адресации частей XML- документа XPath использует пути для адресации.
XSLT-ТРАНСФОРМАЦИЯ XML- ТЕХНОЛОГИИ Лекция 4. Трансформация XML- данных Категории трансформации Структурные трансформации – трансформация одного словаря.
XPath Набор синтаксических правил для адресации элементов XML-документа.
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.Функции.
Java Advanced XML Transformations 1.0 (XSLT 1.0).
Технология Идентификации Ресурсов X-Pointer. Предназначение X-Pointer – это язык, описывающий местонахождение тех или иных ресурсов. Выражения языка X-Pointer.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 14. тема: XML-ТЕХНОЛОГИИ В БАЗАХ ДАННЫХ.
Автоматическая обработка естественного языка I. Обработка письменного текста.
WEB- ТЕХНОЛОГИИ Лекция 2. Задача обмена данными 1 Форматы обмена данными : Текстовый CSV (Comma Separated Values) Локальные XML.
WEB- ТЕХНОЛОГИИ Лекция 4. Задача преобразования XML- данных 1 Задача преобразования Для передачи данных между разными приложениями необходимо преобразовать.
XPath выступает в роли подъязыка преобразований XSLT и XPointer. Выражение XPath используется для манипуляции строками, в числовых выражениях, а также.
XML и XSLT (2) Матросов Александр Васильевич Санкт-Петербургский государственный университет.
Языки описания информации Лекция 4. Кафедра «ОСУ» Весенний семестр 2010/2011 уч. года XPath.
Современные языки и технологии программирования Использование XML.
Интернет- технологии МИИГаИК. Указание XML-документов в ориентире на будущее
Powerpoint Templates Page 1 Язык разметки гипертекста HTML.
XML в Excel XML в Word XML в блокноте XML в internet explorer Спецификация XML.
Транксрипт:

XML eXtensible Markup Language 1.Пространства имён (Namespaces) 2.Язык навигации внутри XML-документа (XPath)

Пространства имён (Namespaces) Представьте, что в одном XML-документе определены такие элементы: Представьте, что в одном XML-документе определены такие элементы: name, age, company, position name, age, company, position А в другом такие: А в другом такие: name, border, size, position name, border, size, position Что случится, если нам понадобится объединить данные из этих документов? Что случится, если нам понадобится объединить данные из этих документов? Парсер запутается в элементах name и position. К какому типу их отнести?

Пространства имён (Namespaces) Пространства имён позволяют разделять наборы элементов, относящихся к разным объектам. Например: Пространства имён позволяют разделять наборы элементов, относящихся к разным объектам. Например: –name, age, company, position можно отнести к пространству имён «people», –а name, border, size, position к пространству имён «image» Пространства имён задаются ссылками URI (Uniform Resource Identifier). Пространства имён задаются ссылками URI (Uniform Resource Identifier). –Например, URI может иметь вид URL (гиперссылки) : NB! В данном случае URL лишь форма задания уникального имени. По такому адресу в сети может ничего не существовать.

Пространства имён (Namespaces) Пространства имён, используемые в документе, должны быть объявлены Пространства имён, используемые в документе, должны быть объявлены –объявление можно сделать в корневом элементе или в том элементе, где данное пространство имён используется –каждому пространству имён (URI) даётся краткое обозначение Это краткое обозначение добавляется к имени элемента как префикс (отделяется двоеточием) Это краткое обозначение добавляется к имени элемента как префикс (отделяется двоеточием) У каждого элемента может быть только один префикс У каждого элемента может быть только один префикс pers:name, pers:age, pers:company, pers:position pers:name, pers:age, pers:company, pers:position image:name, image:border, image:size, image:position image:name, image:border, image:size, image:position

XML eXtensible Markup Language 1.Пространства имён (Namespaces) 2.Язык навигации внутри XML-документа (XPath)

XPath язык для навигации внутри документа Назначение XPath: Назначение XPath: выбирать из документа узлы или значения, которые нужны для совершения с ними каких-л. операций (напечатать, подсчитать, преобразовать…) Основные понятия: Основные понятия: –узел (node) документа узлами являются не только элементы, но и их атрибуты (attribute node), текстовое содержимое (text node) и т. д. узлами являются не только элементы, но и их атрибуты (attribute node), текстовое содержимое (text node) и т. д. –атомарное значение (atomic value) число, строка, дата или булево значение число, строка, дата или булево значение –последовательность (sequence) Выражение на XPath (путь) выбирает в документе последовательность узлов или атомарных значений, отвечающих заданным условиям Последовательность может состоять из 0 или 1 члена Последовательность может состоять из 0 или 1 члена

XPath навигация внутри документа Основные понятия: Основные понятия: –корень документа –элементы –атрибуты –абсолютный и относительный путь –родитель-дети –предки-потомки –сиблинги (узлы одного уровня)

XPath навигация внутри документа Простые выражения Простые выражения путь от корня (абсолютный) начинается с / путь от корня (абсолютный) начинается с / фрагмент пути между двумя / шаг по дереву (по умолчанию от корня к листьям) фрагмент пути между двумя / шаг по дереву (по умолчанию от корня к листьям) в результат входят все узлы, подходящие под описанный путь в результат входят все узлы, подходящие под описанный путь /booklist ; /booklist/book/author путь без / (относительный) считается не от корня, а от текущей позиции путь без / (относительный) считается не от корня, а от текущей позицииbook/author // любое количество шагов // любое количество шагов //book ; //author ; /booklist//author

XPath навигация внутри документа Простые выражения Простые выражения. (точка) Текущий узел. (точка) Текущий узел.. (две точки) Родительский узел.. (две точки) Родительский узел../title (путь от book/author к book/title) * Узел с любым именем * Узел с любым именем /booklist/* все дети /booklist/*/* все Атрибут атрибут по имени lang все атрибуты node()Любой узел node()Любой узел text()Узел с текстовым содержимым text()Узел с текстовым содержимым

XPath навигация внутри документа Выражения с условием (предикатом) Выражения с условием (предикатом) условие на номер узла в последовательности условие на номер узла в последовательности book[2] ; book[last()] ; book[position()250] условие на значение атрибутов условие на значение атрибутов Условие […] применяется к тому узлу, после которого стоит Условие […] применяется к тому узлу, после которого стоит book[2]/author vs. book/author[2]

XPath навигация внутри документа Оси (axes, ед.ч. axis) Оси (axes, ед.ч. axis) Оси задают «направление движения» в конкретном шаге Оси задают «направление движения» в конкретном шаге В полном виде шаг выглядит так: В полном виде шаг выглядит так: … /имя_оси::узел[условие]/ … … /имя_оси::узел[условие]/ … … /sibling::book[25]/ … … /sibling::book[25]/ … Ось по умолчанию child Ось по умолчанию child /booklist/child::book = /booklist/book /booklist/child::book = /booklist/book

XPath навигация внутри документа Оси (axes) Оси (axes) child child parent parent sibling sibling self self ancestor ancestor ancestor-or-self ancestor-or-self descendant descendant descendant-or-self descendant-or-self preceding preceding following following preceding-sibling preceding-sibling following-sibling following-sibling attribute attribute namespace namespace

XPath навигация внутри документа Запишите полностью выражения Запишите полностью выражения /books//author /books//author //book[3]/* /books/*/city /books/*/city

Преобразования XML-данных (XSLT) Как мы помним, XML ничего сам не делает. Его задача описывать структуру данных Как мы помним, XML ничего сам не делает. Его задача описывать структуру данных Чтобы с этими данными что-то сделать, используются специальные средства Чтобы с этими данными что-то сделать, используются специальные средства XSL eXtensible Stylesheet Language XSL eXtensible Stylesheet Language –XSLT: XSL Transformations XSLT выполняет преобразования данных –XSL-FO: XSL Formatting Objects XSL-FO форматирует данные для печати

Преобразования XML-данных (XSLT)

Что умеет делать XSL? Что умеет делать XSL? –Отбирать (фильтровать) определённые данные из целого документа –Упорядочивать данные независимо от исходного порядка –Менять исходную структуру данных (до неузнаваемости) –Преобразовывать XML в другой XML в другой XML в правильный HTML в правильный HTML в другие текстовые форматы в другие текстовые форматы

Преобразования XML-данных (XSLT) В отличие от многих языков программирования (BASIC, Pascal, C,…), XSL не процедурный язык, а декларативный. В отличие от многих языков программирования (BASIC, Pascal, C,…), XSL не процедурный язык, а декларативный. Программа на XSL (transformation, она же stylesheet) сообщает не что нужно делать (последовательность операций), а что должно получиться.

Преобразования XML-данных (XSLT) Программа на XSL состоит из шаблонов (templates), которые сопоставляются с различными частями дерева XML на входе и выдают некоторый выход. Программа на XSL состоит из шаблонов (templates), которые сопоставляются с различными частями дерева XML на входе и выдают некоторый выход. (Далее см. примеры + учебник) (Далее см. примеры + учебник)