view xml/ru/docs/http/ngx_http_xslt_module.xml @ 271:4c6d2c614d2c

Cleaned up XML tag mess: - all of <parameter> and <code>, and some of <dirname>, <value>, and <command> were replaced by <literal>; - the rest of <dirname> were replaced by links; - <argument> were replaced by <value>; - <value> is now rendered in HTML in italic; - <literal> and <path> can now contain <value>. Cleaned up terminology mess: - directives take "parameters".
author Ruslan Ermilov <ru@nginx.com>
date Fri, 23 Dec 2011 17:29:59 +0000
parents bfe3eff81d04
children a837069db70d
line wrap: on
line source

<?xml version="1.0"?>

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

<module name="Директивы модуля ngx_http_xslt_module"
        link="/ru/docs/http/ngx_http_xslt_module.html"
        lang="ru">

<section id="summary">

<para>
Модуль ngx_http_xslt_module — это фильтр, преобразующий XML-ответ
с помощью одного или нескольких XSLT-шаблонов (0.7.8+).
По умолчанию модуль не собирается, нужно разрешить его сборку
при конфигурировании параметром <literal>--with-http_xslt_module</literal>.
Для сборки и работы этого модуля нужны библиотеки
<link url="http://www.xmlsoft.org">libxml2 и libxslt</link>.
</para>

</section>


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

<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 name="Директивы" id="directives">

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

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

</directive>


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

<para>
Директива задаёт XSLT-шаблон и параметры для этого шаблона.
Шаблон компилируется на стадии конфигурации.
Параметры задаются в формате
<example>
param=value
</example>
</para>

<para>
Их можно задавать как по отдельности, так и группировать
в одной строке, разделяя символом ":".
Если же в самих параметрах встречается символ ":", то его нужно
экранировать в виде "%3A".
Кроме того, необходимо помнить о требовании libxslt, чтобы параметры,
содержащие не только алфавитно-цифровые символы,
были заключены в одинарные или двойные кавычки, например:
<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, server, location</context>

<para>
Директива разрешает замену строк в ответах с указанными MIME-типами
в дополнение к "text/xml".
Если в результате преобразования выдаётся HTML-ответ, то его MIME-тип
меняется на "text/html".
</para>

</directive>

</section>

</module>