Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Apache Cocoon , обычно называемый просто Cocoon , представляет собой структуру веб-приложений, построенную на концепциях конвейера , разделения задач и веб-разработки на основе компонентов. Фреймворк ориентирован на публикацию XML и XSLT и построен с использованием языка программирования Java . Гибкость, обеспечиваемая сильной опорой на XML, позволяет быстро публиковать контент в различных форматах, включая HTML , PDF и WML . Системы управления контентом Apache Lenya и Daisyбыли созданы поверх фреймворка. Cocoon также обычно используется в качестве инструмента ETL для хранилища данных или в качестве промежуточного программного обеспечения для передачи данных между системами.

Карта сайта [ править ]

Карта сайта лежит в основе Cocoon. Именно здесь разработчик веб-сайта настраивает различные компоненты Cocoon и определяет взаимодействия клиент-сервер в том, что Cocoon называет конвейерами .

Компоненты [ править ]

Компоненты Cocoon сгруппированы по функциям.

Матчеры [ править ]

Сопоставители используются для сопоставления пользовательских запросов, таких как URL-адреса или файлы cookie, с шаблонами подстановочных знаков или регулярных выражений . Каждый пользовательский запрос проверяется сопоставлениями в карте сайта, пока не будет найдено совпадение. Именно в сопоставлении указывается ответ на конкретный запрос.

Генераторы [ править ]

Генераторы создают поток данных для дальнейшей обработки. Этот поток может быть сгенерирован из существующего XML-документа, или существуют генераторы, которые могут создавать XML с нуля для представления чего-либо на сервере, например структуры каталогов или данных изображения.

XSP [ править ]

Одним из типов генераторов является XML-страница сервера ( XSP ), XML-документ, содержащий директивы на основе тегов, которые определяют, как генерировать динамический контент во время запроса. При обработке Cocoon эти директивы заменяются сгенерированным контентом, так что полученный расширенный XML-документ может быть подвергнут дальнейшей обработке (обычно преобразованию XSLT). XSP преобразуются в производителей Cocoon, обычно в виде классов Java, хотя также можно использовать любой язык сценариев, для которого существует процессор на основе Java.

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

Обратите внимание, что XSP устарел в последних выпусках Cocoon.

Трансформеры [ править ]

Трансформаторы берут поток данных и каким-то образом его изменяют. Наиболее распространенные преобразования выполняются с помощью XSLT для преобразования одного формата XML в другой. Но есть также преобразователи, которые принимают другие формы данных ( например, команды SQL ).

Сериализаторы [ править ]

Сериализатор превращает поток событий XML в последовательность байтов (например, HTML), которые могут быть возвращены клиенту. Существуют сериализаторы, которые позволяют отправлять данные во многих различных форматах, включая, например, HTML , XHTML , PDF , RTF , SVG , WML и простой текст .

Селекторы [ править ]

Селекторы предлагают те же возможности, что и оператор switch . Они могут выбрать определенные элементы запроса и выбрать правильную часть конвейера для использования.

Просмотры [ править ]

Представления в основном используются для тестирования. Представление - это точка выхода из конвейера. Вы можете выпустить XML-поток, который создается до этого момента. Таким образом, вы можете увидеть, правильно ли работает приложение.

Читатели [ править ]

Публикуйте контент без его анализа (без обработки XML ). Используется для изображений и прочего.

Действия [ редактировать ]

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

Трубопровод [ править ]

Трубопровод используется , чтобы определить , каким образом различные компоненты Cocoon взаимодействуют с данной просьбой произвести ответ . Типичный конвейер состоит из генератора, за которым следуют ноль или более трансформаторов и, наконец, сериализатор.

См. Также [ править ]

  • Шаблон реактора - шаблон проектирования, на котором основан Cocoon.
  • XProc - стандарт W3C для моделирования конвейера XML.

Внешние ссылки [ править ]

  • Проект Apache Cocoon