view xml/ru/docs/http/ngx_http_xslt_module.xml @ 617:368a449e85b8

Expanded documentation of what various parameters of the "listen" directive related to socket options do. While here, documented the fact that accept filters also work on NetBSD.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 02 Aug 2012 13:24:07 +0000
parents 764fbac1b8b4
children 7afb12159c1d
line wrap: on
line source

<?xml version="1.0"?>

<!--
  Copyright (C) Igor Sysoev
  Copyright (C) Nginx, Inc.
  -->

<!DOCTYPE module SYSTEM "../../../../dtd/module.dtd">

<module name="Модуль ngx_http_xslt_module"
        link="/ru/docs/http/ngx_http_xslt_module.html"
        lang="ru"
        rev="1">

<section id="summary">

<para>
Модуль <literal>ngx_http_xslt_module</literal> (0.7.8+) — это фильтр,
преобразующий XML-ответ с помощью одного или нескольких XSLT-шаблонов.
</para>

<para>
По умолчанию этот модуль не собирается, его сборку необходимо
разрешить с помощью конфигурационного параметра
<literal>--with-http_xslt_module</literal>.
<note>
Для сборки и работы этого модуля нужны библиотеки
<link url="http://xmlsoft.org">libxml2</link> и
<link url="http://xmlsoft.org/XSLT/">libxslt</link>.
</note>
</para>

</section>


<section id="example" name="Пример конфигурации">

<para>
<example>
location / {
    xml_entities    /site/dtd/entities.dtd;
    xslt_stylesheet /site/xslt/one.xslt param=value;
    xslt_stylesheet /site/xslt/two.xslt;
}
</example>
</para>

</section>


<section id="directives" name="Директивы">

<directive name="xml_entities">
<syntax><value>путь</value></syntax>
<default/>
<context>http</context>
<context>server</context>
<context>location</context>

<para>
Задаёт файл DTD, в котором описаны символьные сущности.
Этот файл компилируется на стадии конфигурации.
По техническим причинам модуль не имеет возможности
использовать внешнее подмножество, заданное в обрабатываемом XML,
поэтому оно игнорируется, а вместо него используется специально заданный файл.
В этом файле не нужно описывать структуру XML, достаточно только объявления
необходимых символьных сущностей, например:
<example>
&lt;!ENTITY nbsp "&amp;#xa0;"&gt;
</example>
</para>

</directive>


<directive name="xslt_param">
<syntax><value>параметр</value> <value>значение</value></syntax>
<default/>
<context>http</context>
<context>server</context>
<context>location</context>
<appeared-in>1.1.18</appeared-in>

<para>
Задаёт параметры для XSLT-шаблонов.
Значение рассматривается как выражение XPath.
В значении можно использовать переменные.
Если нужно передать в шаблон строковое значение,
можно воспользоваться директивой <link id="xslt_string_param"/>.
</para>

<para>
Директив <literal>xslt_param</literal> может быть несколько.
Директивы наследуются с предыдущего уровня при условии, что на данном
уровне не описаны свои директивы <literal>xslt_param</literal> и
<link id="xslt_string_param"/>.
</para>

</directive>


<directive name="xslt_string_param">
<syntax><value>параметр</value> <value>значение</value></syntax>
<default/>
<context>http</context>
<context>server</context>
<context>location</context>
<appeared-in>1.1.18</appeared-in>

<para>
Задаёт строковые параметры для XSLT-шаблонов.
Выражения XPath в значении параметра не интерпретируются.
В значении можно использовать переменные.
</para>

<para>
Директив <literal>xslt_string_param</literal> может быть несколько.
Директивы наследуются с предыдущего уровня при условии, что на данном
уровне не описаны свои директивы <link id="xslt_param"/> и
<literal>xslt_string_param</literal>.
</para>

</directive>


<directive name="xslt_stylesheet">
<syntax>
    <value>шаблон</value>
    [<value>параметр</value>=<value>значение</value> ...]</syntax>
<default/>
<context>location</context>

<para>
Задаёт XSLT-шаблон и необязательные параметры для этого шаблона.
Шаблон компилируется на стадии конфигурации.
</para>

<para>
Параметры можно задавать как по отдельности, так и группировать
в одной строке, разделяя символом “<literal>:</literal>”.
Если же в самих параметрах встречается символ “<literal>:</literal>”,
то его нужно экранировать в виде “<literal>%3A</literal>”.
Кроме того, необходимо помнить о требовании <command>libxslt</command>,
чтобы параметры, содержащие не только алфавитно-цифровые символы,
были заключены в одинарные или двойные кавычки, например:
<example>
param1='http%3A//www.example.com':param2=value2
</example>
</para>

<para>
В описании параметров можно использовать переменные, например,
целая строка параметров может быть взята из одной переменной:
<example>
location / {
    xslt_stylesheet /site/xslt/one.xslt
                    $arg_xslt_params
                    param1='$value1':param2=value2
                    param3=value3;
}
</example>
</para>

<para>
Можно указать несколько шаблонов — в этом случае они
будут применяться последовательно в порядке их описания.
</para>

</directive>


<directive name="xslt_types">
<syntax><value>mime-тип</value> ...</syntax>
<default>text/xml</default>
<context>http</context>
<context>server</context>
<context>location</context>

<para>
Разрешает преобразования в ответах с указанными MIME-типами
в дополнение к “<literal>text/xml</literal>”.
Специальное значение “<literal>*</literal>” соответствует любому MIME-типу
(0.8.29).
Если в результате преобразования выдаётся HTML-ответ, то его MIME-тип
меняется на “<literal>text/html</literal>”.
</para>

</directive>

</section>

</module>