15
WEB-ТЕХНОЛОГИИ Лекция 4

WEB- ТЕХНОЛОГИИ

  • Upload
    donoma

  • View
    71

  • Download
    0

Embed Size (px)

DESCRIPTION

WEB- ТЕХНОЛОГИИ. Лекция 4. Задача преобразования XML-данных. 1. XML: – отделение данных от их представления – передача данных между приложениями. Задача преобразования - PowerPoint PPT Presentation

Citation preview

Page 1: WEB- ТЕХНОЛОГИИ

WEB-ТЕХНОЛОГИИ

Лекция 4

Page 2: WEB- ТЕХНОЛОГИИ

Задача преобразования XML-данных1

Задача преобразования

Для передачи данных между разными приложениями необходимо преобразовать их из модели, используемой одним приложением, в модель, используемую другим

XML:

– отделение данных от их представления

– передача данных между приложениями

Page 3: WEB- ТЕХНОЛОГИИ

Понятие XSLT 2

XSLT — это расширяемый язык стилей для преобразований (от англ. eXtensible Stylesheet Language for Transformations), который используется для описания преобразований структуры документов. XSLT позволяет трансформировать одни документы в другие, пользуясь простыми наборами правил преобразования

Технология XSLT – это технология, позволяющая преобразовывать (трансформировать) XML-документ– в другой XML-документ;– в HTML-документ для отображения Web-браузером;– в документы иных форматов (WML, RTF, PDF, TEX и т.п.).

Стадии:

1. Структурное преобразование, при котором структура данных исходного XML-документа конвертируется в структуру, отражающую желаемый вывод;

2. Форматирование, при котором новая структура выводится в желаемом формате, например, HTML или PDF.

Page 4: WEB- ТЕХНОЛОГИИ

Стадия преобразования 3

SAX – это интерфейс, основанный на событиях, когда по мере анализа документа синтаксический анализатор уведомляет приложение о каждом отдельном фрагменте данных. Если же используется DOM, синтаксический анализатор считывает документа и формирует в памяти его древовидную объектную структуру.

Эта стадия может включать выборку данных, их объединение и группирование, сортировку или выполнение арифметических действий, например, перевод сантиметров в дюймы.

XSLT все еще использует синтаксический анализатор – неважно, с каким интерфейсом, DOM или SAX, – чтобы привести XML-документ к древовидной структуре. XSLT манипулирует именно древовидным представлением XML-документа, а не самим документом.

Page 5: WEB- ТЕХНОЛОГИИ

XSLT-процессоры 4

Основная роль XSLT-процессора – применить таблицу стилей XSLT к исходному документу XML и сформировать конечный документ. Важно отметить, что все компоненты этого процесса являются приложениями XML, так что базовая структура каждого – дерево. Следовательно, XSLT-процессор фактически обрабатывает три дерева.Основные:

– SAXON

– XALAN

– MS XML Parser

Page 6: WEB- ТЕХНОЛОГИИ

XSLT и XSL 5

Язык XSLT возник как часть языка более высокого уровня – XSL (расширяемый язык таблиц стилей).

XSL разбит на две части: описание преобразований, или сам язык XSLT, и «остальное» для стадии форматирования – официально это все еще язык XSL, хотя некоторые предпочитают называть его форматирующими объектами XSL (XSL-FO).

Page 7: WEB- ТЕХНОЛОГИИ

Таблицы стилей 6

Язык XSLT возник как часть языка более высокого уровня – XSL (расширяемый язык таблиц стилей).

Таблица стилей – это XML-документ специального вида (обычно файл с расширением .xsl), содержащий набор правил преобразования исходного XML-документа, написанных на языке XSLT и предназначенных для XSLT-процессора.

XSLT вместо этого описывает необходимые действия в терминах особого представления XML-документа, которое называется деревом. Дерево – это абстрактный тип данных.

Page 8: WEB- ТЕХНОЛОГИИ

Стандартизация 7

XSL ― стандарт, рекомендованый World Wide Web Consortium.

Первые две части этого языка стали официальной рекомендацией W3C в ноябре 1999 года. Полная рекомендация по XSL, включая XSL-форматирование, стала кандидатом в официальные рекомендации в ноябре 2000 года.

Page 9: WEB- ТЕХНОЛОГИИ

Пространство имен XSLT 8

Чтобы XSLT-процессор «понимал» указания таблицы стилей, соответствующие имена, используемые в таблице стилей, должны принадлежать определенному пространству имен. В зависимости от используемой версии или диалекта XSLT эти пространства имен разные:

http://www.w3.org/1999/XSL/Transform

http://www.w3.org/TR/WD-xsl

Префикс: xsl

Page 10: WEB- ТЕХНОЛОГИИ

Как происходит преобразование 9

В ходе преобразования XSLT-процессор манипулирует тремя объектами:

1) деревом исходного документа или входным деревом, которое строится в памяти в ходе загрузки исходного документа. Процессор анализирует это дерево путем целенаправленного обхода его узлов;

2) деревом таблицы стилей, которое также строится в памяти процессора в ходе загрузки таблицы стилей. Процессор анализирует это дерево путем целенаправленного обхода его узлов;

3) деревом результирующего документа или выходным деревом, которое процессор последовательно, узел за узлом строит в своей памяти в ходе преобразования. После окончания строительства процессор выполняет так называемую сериализацию, в ходе которой выходное дерево преобразуется в выходной документ.

Page 11: WEB- ТЕХНОЛОГИИ

Как происходит преобразование 10

В ходе преобразования XSLT-процессор манипулирует тремя объектами:

1) деревом исходного документа или входным деревом, которое строится в памяти в ходе загрузки исходного документа. Процессор анализирует это дерево путем целенаправленного обхода его узлов;

2) деревом таблицы стилей, которое также строится в памяти процессора в ходе загрузки таблицы стилей. Процессор анализирует это дерево путем целенаправленного обхода его узлов;

3) деревом результирующего документа или выходным деревом, которое процессор последовательно, узел за узлом строит в своей памяти в ходе преобразования. После окончания строительства процессор выполняет так называемую сериализацию, в ходе которой выходное дерево преобразуется в выходной документ.

Page 12: WEB- ТЕХНОЛОГИИ

Структура таблицы стилей 12

xml version="1.0"encoding="windows-1251"

xsl ="http://www.w3.org/1999

stylesheet

version="1.0"

template

Инструкция

КЛЭ

/XSL/Transform"

Page 13: WEB- ТЕХНОЛОГИИ

Шаблоны 13

Таблица стилей должна содержать, по крайней мере, один шаблон; на самом деле их зачастую бывает много.

В свою очередь, тело шаблона может содержать:

– поддеревья конечных литеральных элементов, которые непосредственно копируются в выходное дерево;

– элементы-инструкции, выполнение которых процессором приводит к формированию отдельных узлов или целых поддеревьев на основе узлов исходного дерева, которые также помещаются в выходное дерево.

Page 14: WEB- ТЕХНОЛОГИИ

Форсирующая обработка 14

4

template

html

head

body

title=Снабжение

html

head

body

title=Снаб-1

h2 =Список поставщиков

h2=Список

постав-

match="/"

apply-template

template match="снаб"

br=Номер

apply-template

template match="поставщик"

p

apply-template

template match="поставка"

br

apply-template

template match="товар"

apply-template

xsl ="http://www.w3.org/1999

stylesheet

version="1.0" /XSL/Transform"

br=Номер=127

p=Смит

br=300=Гайка

br=200=Болт

p=Блейк

br=300=Гайка

жение

щиков

снаб

поставка =300

товар =Гайка

xml7

=1279

поставщик 12=Смит14

поставка17

=30019

товар21

=Гайка23

поставка26

=20028

товар30

=Болт32

поставщик =Блейк

2

3

5

6

7 9 32

4

10

11

12 14 23

15 24

16 25

26 2817 19

20 29

21 30

3

6

8

11

13

16

18

22

25

27

31

Page 15: WEB- ТЕХНОЛОГИИ

Извлекающая трансформация 16

template

html head

body

title =Снабжениеh3 =Список поставщиков

match="/"

for-each

= .value-of

xsl ="http://www.w3.org/1999

stylesheet

version="1.0" /XSL/Transform"

select="postion()"

html

head

bodytitle =Снабжение

h3=Список поставщиков=1.

=Смит

= --

= :b

=Гайка=300

поставщик

поставка

снаб

товар

xml

имя

кол

select="снаб/поставщик"

b value-of select="@имя"= :

for-each

= --value-of select="товар/@назв"

select="поставка"

b value-of select="@кол"= .

br

назв

= .

= --=Болт=200= .

br

=2.=Кларк

= --

= :b

=Гайка=300= .

br