ngx_http_xslt_module モジュール
設定例 ディレクティブ xml_entities xslt_last_modified xslt_param xslt_string_param xslt_stylesheet xslt_types |
ngx_http_xslt_module
(0.7.8+) は、一つ以上のXSLTスタイルシートを使ってXML応答を変形するフィルタです。
このモジュールはデフォルトではビルドされず、--with-http_xslt_module
configureパラメータを有効にする必要があります。
このモジュールは libxml2 と libxslt ライブラリを必要とします。
設定例
location / { xml_entities /site/dtd/entities.dtd; xslt_stylesheet /site/xslt/one.xslt param=value; xslt_stylesheet /site/xslt/two.xslt; }
ディレクティブ
構文: |
xml_entities |
---|---|
デフォルト: | - |
コンテキスト: |
http , server , location |
キャラクタエンティティを宣言するDTDファイルを指定する。このファイルは配置ステージでコンパイルされます。技術的な理由で、モジュールは処理中のXMLで定義されている外部のサブセットを使うことができません。そのため、そのサブセットは無視され、代わりに特別に指定したファイルが使われます。このファイルはXML構造を記述すべきではありません。それは、要求される文字を宣言するだけで十分です。例えば:
<!ENTITY nbsp " ">
構文: |
xslt_last_modified |
---|---|
デフォルト: |
xslt_last_modified off; |
コンテキスト: |
http , server , location |
このディレクティブはバージョン1.5.1から導入されました。
応答のキャッシュを容易にするために、XSLTの変換時に元の応答の"Last-Modified"ヘッダを保持することができます。
デフォルトでは、応答のコンテンツは変換時に修正されるため、そのヘッダは削除されます。そして、元の応答とは無関係に変更された動的生成された要素あるいはパーツを含むかもしれません。
構文: |
xslt_param |
---|---|
デフォルト: | - |
コンテキスト: |
http , server , location |
このディレクティブはバージョン1.1.18から導入されました。
XSLTスタイルシートのためのパラメータを定義します。value
は XPath表現として扱われます。value
は変数を含むことができます。文字列をスタイルシートに渡すには、 xslt_string_param ディレクティブを使うことができます。
幾つかのxslt_param
ディレクティブが有り得ます。現在のレベルにxslt_param
とxslt_string_paramのディレクティブがない場合に限り、これらのディレクティブは上の設定レベルから引き継ぎます。
構文: |
xslt_string_param |
---|---|
デフォルト: | - |
コンテキスト: |
http , server , location |
このディレクティブはバージョン1.1.18から導入されました。
XSLTスタイルシートのためのパラメータを定義します。value
の中のxPath表現は解釈されません。value
は変数を含むことができます。
幾つかのxslt_string_param
ディレクティブが有り得ます。現在のレベルにxslt_param とxslt_string_param
のディレクティブがない場合に限り、これらのディレクティブは上の設定レベルから引き継ぎます。
構文: |
xslt_stylesheet
|
---|---|
デフォルト: | - |
コンテキスト: |
場所 |
XSLTスタイルシートとそのオプションのパラメータを定義します。スタイルシートは配置ステージでコンパイルされます。
パラメータは個々に指定することも、行の中で":
"デリミタを使ってグループ化することもできます。もしパラメータに":
"文字が含まれる場合は、"%3A
"のようにエスケープされるべきです。また、libxslt
は英数字以外の文字を含むパラメータをシングルクォートあるいはダブルクォートで囲むことを要求します。例えば:
param1='http%3A//www.example.com':param2=value2
パラメータの記述には変数を含むことができます。例えば、パラメータ全体の行を一つの変数にもできます。
location / { xslt_stylesheet /site/xslt/one.xslt $arg_xslt_params param1='$value1':param2=value2 param3=value3; }
複数のスタイルシートを指定することができます。指定された順番で順次適用されるでしょう。
構文: |
xslt_types |
---|---|
デフォルト: |
xslt_types text/xml; |
コンテキスト: |
http , server , location |
"text/xml
"に加えて、指定されたMIMEタイプで応答の変換を行うことができます。特別な値"*
"は全てのMIMEタイプに一致します(0.8.29)。変換の結果がHTML応答であった場合、MIMEタイプは"text/html
"に変更されます。