Включение данных
В системе управления включением данных LXP центральное место занимает тег <include>. Он работает в разных режимах в зависимости от переданного атрибута method или контекста, определяемого значениями атрибутов.
В простейшем виде тег <i ncl ude> используется для простого включения файлов HTML— стандартных заголовков, панелей ссылок и нижних колонтитулов. Существуют и другие, не столь тривиальные применения — тег <include> может использоваться для разбора файлов, разделенных произвольными лексемами, и базовых документов XML, внедрения выходных данных РНР в документы LXP, непосредственной обработки запросов SQL и, конечно, включения других документов LXP.
В табл. 13.1 перечислены методы включения, поддерживаемые тегом <incl ude>. В первом столбце указаны значения атрибута method тега <i ncl ude>. Во втором столбце приведены псевдонимы — альтернативные имена для вызова метода. В столбце «По умолчанию» указаны значения атрибутов, при которых этот метод используется по умолчанию (при этом необходимость в явном указании атрибута method отпадает). В столбце «Описание» приводится краткое описание самого метода.
Таблица 13.1. Методы включения в LXP
Метод | Псевдонимы | По умолчанию | Описание |
LXP |
Атрибут src завершается расширением .1хр |
Файл обрабатывается средствами modjxp |
|
flat |
Неопознанное расширение в атрибуте src при отсутствии атрибутов sql и query |
Простой вывод содержимого файла |
|
parsed |
Лексический разбор файла с разбиением на значения <field> |
||
XML |
RSS, RDF |
Атрибут src завершается расширением .xml, .rdf или .rss |
Лексический разбор нормально сформированного файла XML с разбиением на значения <field> |
local |
Apache |
Атрибут src завершается расширением .php, .рпрЗ или .phtml |
Воспроизведение выходных данных подзапроса Apache, атрибут src содержит имя файла |
URI |
Воспроизведение выходных данных подзапроса Apache, атрибут src содержит HTTP URI |
||
SQL |
Наличие атрибута sql или query |
Выполнение команды SQL. Доступ к результатам запроса осуществляется при помощи переменных и тегов <field> |
Источник включаемых данных всегда задается атрибутом src тега <include>. В большинстве случаев это имя файла, хотя в зависимости от выбранного метода источником также может быть подключение к базе данных или URI. При включении файла с относительным путем (то есть не прослеживаемым к основанию файловой системы), LXP выбирает в качестве основания рабочий каталог документа LXP, в котором производится включение.
ПРИМЕЧАНИЕ
Для предотвращения непреднамеренной бесконечной рекурсии (например, из-за включения файла, включающего самого себя) в документах LXP включение может производиться только до глубины, заданной директивой MaxIncludeDepth в файле Ixp.conf (см. подраздел «Настройка файла Ixp.conf» в разделе «Установка и настройка LXP»). По умолчанию максимальная глубина включения равна 15.