Создание сайтов
<<  Программные средства разработки Web-страниц и презентаций Представление дисциплины Создание школьного сайта на Ucoz  >>
Практика разработки web-приложений с использованием XSLT
Практика разработки web-приложений с использованием XSLT
Webapp на XML и XSLT
Webapp на XML и XSLT
Проблемы
Проблемы
Ошибки
Ошибки
Основные моменты
Основные моменты
Генерация дерева
Генерация дерева
Трансформация
Трансформация
Взаимодействие с шаблоном
Взаимодействие с шаблоном
Пример передачи параметров
Пример передачи параметров
Пример использования параметра
Пример использования параметра
Пример php callback’а
Пример php callback’а
Требования к реализации
Требования к реализации
XSLT Processing
XSLT Processing
Запрос по пользовательской схеме
Запрос по пользовательской схеме
Streams
Streams
Интерфейс класса-обертки
Интерфейс класса-обертки
Использование
Использование
Связывание XML и XSL
Связывание XML и XSL
Пример
Пример
Еще немного
Еще немного
Бонусы
Бонусы
Итоги
Итоги
thx
thx

Презентация на тему: «Готовые шаблоны войне». Автор: Customer. Файл: «Готовые шаблоны войне.ppt». Размер zip-архива: 420 КБ.

Готовые шаблоны войне

содержание презентации «Готовые шаблоны войне.ppt»
СлайдТекст
1 Практика разработки web-приложений с использованием XSLT

Практика разработки web-приложений с использованием XSLT

© ООО «Юмисофт»

2 Webapp на XML и XSLT

Webapp на XML и XSLT

Стандартизированный язык Разделение логики и представления Расширяемость Переносимость Независимость

3 Проблемы

Проблемы

Производительность Ошибки Работа с XML Другие проблемы …

4 Ошибки

Ошибки

Избыточность XML-документа Много лишних данных Плохой формат XML Избыточность XSLT шаблона “Шаблон-на-все-случаи-жизни” Реализация бизнес логики приложения в шаблоне “Любопытное” использование Парсинг чужих страниц (чужого html кода) Получение XML-результатов запросов из БД …

5 Основные моменты

Основные моменты

Генерация XML-документа XSL трансформация Взаимодействие с шаблоном Передача параметров Дополнительные данные

6 Генерация дерева

Генерация дерева

Прямая работа с DOM Прямая работа с XMLWriter Wrapper/транслятор для DOM/XMLWriter Прямой вывод XML (“echo”, “=”)

7 Трансформация

Трансформация

LibXSLT <?php $domXml = DOMDocument::load(“doc.xml”); $domXsl = DOMDocument::load(“tpl.xsl”); $xsl = new XSLTProcessor(); $xsl->importStyleSheet($domXsl); $result = $xsl->transformToXML($domXml); echo $result; ?>

8 Взаимодействие с шаблоном

Взаимодействие с шаблоном

Данные Выбор xsl-шаблона Передача параметров (xsl:param) Прямые callback function (“php” namespace) Stream wrapper (php 5)

9 Пример передачи параметров

Пример передачи параметров

<?php $xsl = new XSLTProcessor(); $xsl->importStyleSheet($domXsl); foreach($_SERVER as $key => $value) { $key = strtolower($key); $xslt->setParameter("", $key, $value); } $result = $xsl->transformToXML($domXml); ?>

10 Пример использования параметра

Пример использования параметра

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name=“query_string” /> <xsl:template match=“/”> Q-S: “<xsl:value-of select=“$query_string” />” </xsl:template> </xsl:stylesheet>

11 Пример php callback’а

Пример php callback’а

<?php $xsl = new XSLTProcessor(); $xsl->registerPHPFunctions(); $xsl->importStyleSheet($domXsl); $result = $xsl->transformToXML($domXml); ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform“ xmlns:php="http://php.net/xsl"> <xsl:template match=“/”> <xsl:value-of select=“php:function(‘date’, ‘Y-m-d H:i:s’)” /> </xsl:template> </xsl:stylesheet>

12 Требования к реализации

Требования к реализации

“Достаточный минимум” в XML документах Достаточная свобода для реализации представления Четкое разделение “обязанностей” Возможность обработать дополнительные данные

13 XSLT Processing

XSLT Processing

© ООО «Юмисофт»

14 Запрос по пользовательской схеме

Запрос по пользовательской схеме

“Взять сторонний XML-документ и применить к нему шаблоны” <xsl:template match=“/”> <xsl:apply-templates select=“document(‘my://some/ud/path’)” /> </xsl:template>

15 Streams

Streams

Данные

Технология

Код

schema://path/

UDF()

URI

XML Document

Stream wrapper class

© ООО «Юмисофт»

На входе URI на выходе готовый XML Document, который является результатом document()

Адрес URI

Логика обработки URI определяется пользователем в зависимости от schema

Класс-обертка реализует интерфейс для работы с пользовательскими схемами

16 Интерфейс класса-обертки

Интерфейс класса-обертки

interface iStreamWrapper { stream_open($uri, $mode, $options, $opened_path); stream_read($length); stream_close(); stream_eof(); stream_tell(); stream_seek($offset, $mode); stream_write($data); stream_flush(); stream_url_stat(); };

17 Использование

Использование

<?php class myStream implements iStreamWrapper { /* Реализация класса */ }; stream_wrapper_register(“my”, “myStream”); //Если все правильно, то должны получить well-formed XML var_dump(file_get_contents(“my://some/path”)); ?>

18 Связывание XML и XSL

Связывание XML и XSL

Жесткое связывание

XML

XSL

Динамическое связывание

XML

XSL

MAPPING

XML

XSL

XML

XSL

© ООО «Юмисофт»

1

1

19 Пример

Пример

Будет работать для “http://localhost/search.html?q=php”. <sitemap cache=“0"> <match pattern="^/search\.html"> <param name="cache" value="10" /> <generate src=“my://search/{q}/" /> <!– Вызвать udf_search($q); --> <transform src="./xsl/search.xsl" /> <!-- Может быть несколько --> <serialize type=“html" /> </match> … </sitemap>

20 Еще немного

Еще немного

<sitemap cache=“0"> <match pattern="^/catalog\/(.*)\.pdf"> <param name="cache" value=“3600" /> <generate src=“my://{1}/" /> <transform src="./xsl/toPdf.xsl" /> <validate xsd="./xsd/catalog.xsd" /> <serialize type=“csv"> <param name=“headers”> <param name=“Content-type” value=“text/plain” /> <!-- … --> </param> </serialize> </match> … </sitemap>

21 Бонусы

Бонусы

Автоматическое тесты XSD-схемами Возможность вывести stream’ы наружу (HTTP) Смешение источников данных Портирование готовых шаблонов на новые рельсы

22 Итоги

Итоги

Имеем представление о работе с XML+XSLT Рассмотрели 2 варианта управления шаблонами Посмотрели stream’ы и param’ы

23 thx

thx

Спасибо! Антонинко Сергей, umisoft sa@umisoft.ru

«Готовые шаблоны войне»
http://900igr.net/prezentacija/informatika/gotovye-shablony-vojne-197606.html
cсылка на страницу

Создание сайтов

38 презентаций о создании сайтов
Урок

Информатика

130 тем
Слайды