
- •Министерство образования Республики Беларусь
- •Автоматизация преобразования структурированных данных в корпоративном правовом портале Конкурсный проект
- •Введение
- •Описание технических и программных требований
- •Постановка задачи
- •Структура разрабатываемого приложения
- •Основные рабочие процессы в проектируемом продукте
- •Общие сведения об используемых технологиях
- •Разработка проекта
- •Проектирование и создание исходных данных
- •Написание необходимой документации
- •СозданиеDtd-схемы
- •Пример исходногоXml-файла
- •Настройка и использование сервераApacheCocoon
- •Реализация процессинговой частиWeb-приложения
- •СозданиеXslt-темплейтов
- •СозданиеXsl-fo темплейтов
- •Подключение и использованиеCss
- •ПрименениеJavaScript
- •Примеры выходных данных и работа с системой
- •Заключение
- •Список использованных источников
- •Приложение а
Реализация процессинговой частиWeb-приложения
СозданиеXslt-темплейтов
XSLT-темплейты логически являются одним из главных звеньев в цепи функционирования разработанного проекта. Именно они отвечают за преобразованиеXML-файлов, в которых содержатся исходные данные, вHTML-страницы, которые затем предоставляются пользователю в удобном для него виде. Всего в системе используется порядка 40XSLT-файлов, отвечающих за различные аспекты функционирования системы, начиная от обработки небольших структурных элементов исходного документа, заканчивая реализацией общего представления документа для его последующей отправки посредством электронной почты, для чего предъявляются несколько иные требования.
Стартовой точкой системы является файл document-xhtml-renderer-scion-view.xsl(рисунок 14). Он содержит точку входа в исходный документ (<xsl:template match="/">) и содержит инструкции, необходимые для выполнения в случае нахождения в документе так называемого «roottag» - стартового элемента.
В случае вызова данного темплейта происходит построение HTML-страницы, вызов других темплейтов для дальнейшей обработки исходного документа, подключение файлов с кодомJavaScript, подключениеCSS-файла, формирование тела страницы и ее блочной структуры.
Следующим вызывается файла doc-view-specific.xsl, который включает в себя другие необходимые темплейты и подключает обработчики из других файлов проекта:
<xsl:include href="document-xhtml-list-renderer.xsl"/>
<xsl:include href="document-xhtml-commons.xsl"/>
<xsl:include href="doc-heading.xsl"/>
<xsl:include href="value-add-html.xsl"/>
<xsl:include href="document-xhtml-renderer.xsl"/>
<xsl:include href="xhtml-page-start-element.xsl"/>
<xsl:include href="xhtml-footer.xsl"/>
<xsl:include href="doc-notes-html.xsl"/>
<xsl:include href="all-formats.xsl"/>
<xsl:include href="xhtml-related-information-element.xsl"/>
<xsl:include href="break-html.xsl"/>
<xsl:include href="document-xhtml-metadata-renderer.xsl"/>
<xsl:include href="html-head-section.xsl"/>
Таким образом строится структура проекта, в котором обработка практически каждого элемента заканчивается вызовом обработчиков для всех вложенных в него элементов. Так происходит до тех пор, пока процессор не добирается до конца каждой ветки структурного дерева, после чего переходит к следующему ответвлению документа.
Рисунок 14 – Структура файла document-xhtml-renderer-scion-view.xsl
Возвращаемся к документу doc-view-specific.xsl.Здесь находится один из наиболее важным участком обработчика, а именно, темплейт, отвечающий за создание структуры документа для различных типов юридических данных. В темплейте «atlas-document-body-structure» в зависимости от переменной, в которой содержатся данные об идентификации типа юридической информации, строится своя индивидуальная структураHTML-страницы и в дальнейшем вызываются специфические обработчики (рисунок 15).
Рисунок 15 – Структура темплейта «atlas-document-body-structure»
Посредством вызова инструкции <xsl:apply-templates/>происходит обращение ко всем другим обработчикам, которые найдут в исходном документе элементы, подходящие под их условия. Использование инструкции<xsl:call-template/>приводит к вызову специального темплейта с изначально заданным именем.
Далее приведем пример, как строится секция заголовка для одного из документов (рисунок 16).
Рисунок 16 – Создание секции заголовка
На рисунке представлены 3 взаимосвязанных темплейта. В первом из них строится общая структура секции заголовка, создаются блоки-контейнеры, вызывается обработчик для отображения текста главного заголовка после чего инструкция <xsl:call-template name="metadata-grey-box-law"/> вызывает отображение панели с метаданными – «дэшбоард» – своего рода информационное меню HTML-страницы.
Далее формируется кнопка-список для перехода к секциям «RelatedMatter» с использованием возможностейJavaScript, для чего создается пустой блок-контейнер в третьем из приведенных выше темплейтов. Затем внутри первого обработчика вызывается второй темплейт, который отвечает за отображение дополнительной текстовой информации после «дэшбоарда». Подобным образом устроена работа и других обработчиков, например, отвечающего за преобразование элементовwkdoc:level(рисунок 17).
Рисунок 17 – Структура темплейта «wkdoc:level»
Следующий темплейт иллюстрирует процесс создания информационного меню для документов типа Newsletter(рисунок 18). Данный обработчик находится в файлеvalue-add-html.xsl.
Рисунок 18 – Структура темплейта «metadata-grey-box-news»
Здесь применяется более сложный механизм, наряду с блочной структурой представления данных также используется и табличная. За форматирование отвечает закрепленный за проектом CSS-файл, который с использованием изображений и специализированных атрибутов позволяет добиться получения необходимого результата оптимальным способом. Также вызывается специализированный темплейт для отображения даты, хранящейся в документе, в формате, который зависит от языка. То есть, в случае, если исходный файл содержит параметр, указывающий на английский язык, будет применено иное форматирование, нежели в случае использования французского языка.
На рисунке 19 показано, как происходит обработка и создание заголовков различных уровней для элементов h1, находящихся в исходных данных, которые относятся к типу документов «GAD» (doc-agency).
Рисунок 19 – Обработка элементов h1 из документов типаGAD
Еще одним часто встречающимся элементом является «para». Его обработка происходит в файлеparagraph-html.xsl(рисунок 20).
Рисунок 20 – Обработка элементов para