Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Сервер приложений eXist. Архитектура сервера. Конвейеры. Основные типы этапов: generate, transform, serialize. ⇐ ПредыдущаяСтр 8 из 8
Exist-db – система управления базами данных, построенная полностью на XML технологиях: • XQuery 1.0 / XPath 2.0 • XSLT 1.0 (средствами Xalan) / XSLT 2.0 (опционально, средствами Saxon) • HTTP интерфейсы: REST, WebDav, XMLRPC, Atom Publishing Protocol • Про архитектуру конкретного ничего не нашел. Конвейеры это средство для формирования данных на сервере в формате удобном для клиентской части приложения. Мы можем пропустить сгенерированные XQuery данные через череду конвейеров, которые могут преобразовать наши данные различным способом. В eXist эти вещи декларируют в файле sitemap.xmap: Структура файла Файл sitemap.xmap состоит из секций match. Если такой файл существует, то при запуске системы путь в адресной строке анализируется на соответствие атрибуту pattern каждого тега match в файле sitemap.xmap. Если соответствие найдено, то поиск прекращается и начинается обработка содержания тега match. Если ни одного соответствия не найдено, то управление передается обратно системе. Тег match. Тег match обозначает секцию. Атрибут " pattern" определяет регулярное выражение, по которому система определяет, какую секцию файла sitemap.xml использовать. < map: match pattern=" message_list.xq" > < map: match pattern=" *.xq" > Тег generate. Тег generate определяет источник данных, который будет использован для секции. В атрибуте src указывается URI источника данных. В атрибуте match может быть указан только один раз. В противном случае система выдаст ошибку. После получения XML, данные кладутся в буфер, чтобы использовать их потом в качестве источника данных в тегах transform, validate, serialize. < map: generate src=" message_list.xq" type=" xquery" > < generate src="./data/somefile.xml" /> < generate src=" http: //www.somesite.ru/news/rss.xml" /> Тег transform. Данная инструкция берет xml-документ, находящийся в буфере и совершает над ним xslt-преобразование, используя xslt-шаблон, указанный в атрибуте src. После преобразования получившийся документ кладется в буфер и может быть либо использован для повторного преобразования (еще один тег transform), либо для валидации (validate) или сериализации. Тег transform может быть указан 1 и более раз. Преобразования выполняются последовательно сверху вниз. Если тег transform не указан, то XML-документ в буфуре не изменяется и передается дальше по конвейеру на валидацию или сериализацию. < map: transform type=" xinclude" /> < map: transform src=" user_list.xsl" /> Тег serialize. Берет данные из буфера, передает их в сериализатор, указанный в атрибуте type и запускает процесс сериализации. < serialize type=" html" /> < serialize type=" xml" />
Пример sitemap’a <? xml version=" 1.0" encoding=" UTF-8"? > < map: sitemap xmlns: map=" http: //apache.org/cocoon/sitemap/1.0" > < map: pipelines> < map: pipeline> < map: match pattern=" message_list.xq" > < map: generate src=" message_list.xq" type=" xquery" > < map: parameter name=" create-session" value=" false" /> < /map: generate> < map: transform type=" xinclude" /> < map: transform src=" message_list.xsl" /> < map: serialize encoding=" UTF-8" type=" html" /> < /map: match> < /map: pipeline> < /map: pipelines> < /map: sitemap>
Билет21 1. Язык преобразования XML документов - XSLT. Назначение, общая структура и основные понятия. Понятие контекста. Контекст вычисления выражений Выражения всегда вычисляются в некотором контексте – окружении, которое зависит от того, какая часть документа обрабатывается XSLT-процессором в данный момент, и какие объявления присутствовали в самом преобразовании. Контекст преобразования состоит из узла, называемого контекстным узлом, двух целых чисел – размера контекста и позиции в контексте, объявлений переменных, объявлений пространств имен и библиотеки функций. Контекст саамы непосредственным образом влияет на вычисление выражений. Относительные пути выборки отсчитываются от контекстного узла, вычисление многих функций также производится в зависимости от контекста. Кроме того, в выражениях нельзя использовать функции, пространства имен и переменные, не присутствующий в контексте. Контекст преобразования При выполнении преобразования каждая из его инструкций, каждый из элементов обрабатывается в некотором контексте. Контекст преобразования состоит из двух частей: из текущего множества узлов и из текущего узла, которые показывают, что именно обрабатывается в данный момент. XSLT-процессор поочередно обрабатывает каждый из узлов текущего множества (при этом делая этот узел текущим узлом) и объединяет результаты в одно дерево. Контекст преобразования может изменяться только двумя элементами – xsl: apply-templates и xsl: for-each. Каждый из этих элементов вычисляет множество узлов, которое становится текущим и затем обрабатывается. После этого контекст преобразования восстанавливается до того состояния, каким он был перед обработкой. 2. 3. Рисунок 1 Изменение контекста
Популярное:
|
Последнее изменение этой страницы: 2016-08-24; Просмотров: 622; Нарушение авторского права страницы