Включение данных
В системе управления включением данных 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.
|