XML eXtensible Markup Language

Содержание

Слайд 2

Пространства имён (Namespaces)

Представьте, что в одном XML-документе определены такие элементы:
name, age, company, position
А

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

Слайд 3

Пространства имён (Namespaces)

Пространства имён позволяют разделять наборы элементов, относящихся к разным объектам. Например:

Пространства имён (Namespaces) Пространства имён позволяют разделять наборы элементов, относящихся к разным

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

Слайд 4

Пространства имён (Namespaces)

Пространства имён, используемые в документе, должны быть объявлены
объявление можно сделать в

Пространства имён (Namespaces) Пространства имён, используемые в документе, должны быть объявлены объявление
корневом элементе или в том элементе, где данное пространство имён используется
каждому пространству имён (URI) даётся краткое обозначение
xmlns:image="http://www.philol.msu.ru/photo">
Это краткое обозначение добавляется к имени элемента как префикс (отделяется двоеточием)
У каждого элемента может быть только один префикс
pers:name, pers:age, pers:company, pers:position
image:name, image:border, image:size, image:position

Слайд 5

XML eXtensible Markup Language

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

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

Слайд 6

XPath — язык для навигации внутри документа

Назначение XPath:
выбирать из документа узлы или значения,

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

Слайд 7

XPath — навигация внутри документа

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

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

Слайд 8

XPath — навигация внутри документа

Простые выражения
путь от корня (абсолютный) начинается с /
фрагмент

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

Слайд 9

XPath — навигация внутри документа

Простые выражения
. (точка) Текущий узел
.. (две

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

Слайд 10

XPath — навигация внутри документа

Выражения с условием (предикатом)
условие на номер узла в

XPath — навигация внутри документа Выражения с условием (предикатом) условие на номер
последовательности
book[2] ; book[last()] ; book[position()<3]
условие на значение дочерних элементов (путь отсчитывается от текущей позиции)
book[city="Москва"]
book[price>250]
условие на значение атрибутов
//book[@lang="rus"]/title
Условие […] применяется к тому узлу, после которого стоит
book[2]/author vs. book/author[2]

Слайд 11

XPath — навигация внутри документа

Оси (axes, ед.ч. axis)
Оси задают «направление движения» в

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

Слайд 12

XPath — навигация внутри документа

Оси (axes)
child
parent
sibling
self
ancestor
ancestor-or-self
descendant
descendant-or-self
preceding
following
preceding-sibling
following-sibling
attribute
namespace

XPath — навигация внутри документа Оси (axes) child parent sibling self ancestor

Слайд 13

XPath — навигация внутри документа

Запишите полностью выражения
/books//author
//book[3]/*
..[name()='author']/@lang
..[@lang='rus']/title
./@*
/books/*/city

XPath — навигация внутри документа Запишите полностью выражения /books//author //book[3]/* ..[name()='author']/@lang ..[@lang='rus']/title ./@* /books/*/city

Слайд 14

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

Как мы помним, XML ничего сам не делает. Его задача —

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

Слайд 15

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

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

Слайд 16

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

Что умеет делать XSL?
Отбирать (фильтровать) определённые данные из целого документа
Упорядочивать данные

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

Слайд 17

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

В отличие от многих языков программирования (BASIC, Pascal, C,…), XSL —

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