# リクエスト定義ファイルについて

## リクエスト定義ファイルの格納先ディレクトリ

リクエスト定義ファイルは conf という名前のディレクトリに格納する必要があります。

conf ディレクトリはモジュール毎に作成することができます。
モジュールとはひとつのアプリケーションを格納するディレクトリ名を示します。
例えば，「http://localhost/conga/examples/t00/index.html」で表示されるアプリケーションのモジュール名は，/examples/t00 となります。
このモジュール用の conf ディレクトリは，/examples/t00 ディレクトリの直下に作成した，/examples/t00/conf となります。

## リクエスト定義ファイルの名前

ひとつの conf ディレクトリの中には複数のリクエスト定義ファイルを格納することができます。
ただし，リクエスト定義ファイルとして認識されるファイルは，以下の名前を持つファイルのみです。

- template.xml
- *request-config.xml (ファイルの末尾が "request-config.xml" で終わるファイル)

## リクエスト定義ファイルの読み込み順について

ひとつの conf ファイルに複数のリクエスト定義ファイルが存在する場合や，include タグを使って，別モジュールのリクエスト定義ファイルをインクルードしている場合には，その全ての情報がマージされ，ひとつのモジュール情報として扱われます。

もし複数のリクエスト定義ファイル上に，矛盾する定義情報が含まれる場合（例えば，<template type="date"> <property format="yyyy/MM/dd" ... という定義と，<template type="date"> <property format="MM-dd" ... という定義が存在する場合）には，より後に読み込まれた情報で，前に読み込んだ情報が上書きされます。

リクエスト定義ファイルの読み込みは，以下のルールに従って行なわれます。

- 最初に，フレームワーク自体が提供しているテンプレートファイル（/conga/conf/template.xml）の読み込みが行なわれる。
- 次に，リクエスト対象となったモジュールの conf ディレクトリにある template.xml ファイルが読み込まれる。
- ただし，template.xml 内に include 指定がある場合は，template.xml の内容を読み込む前に，include するモジュールの conf ディレクトリ内の定義ファイルを読み込む。
- 最後に，*request-config.xml ファイルの内容を読み込む。*request-config.xml が複数ある場合は，全てのファイルについて読み込みを行なう。この際，*request-config.xml ファイルの読み込みの順番は保証されない

読み込み例:

## リクエスト定義ファイルのおすすめ構成例

複数の定義ファイルや，複数のモジュールを使用するアプリケーションを構築する場合には，以下のようにリクエスト定義ファイルを構成することを推奨します。

- template タグ, include タグ, resource タグ については，template.xml に記述する。
- 複数のモジュールで共通に利用できる定義を作成する場合には，template.xml ファイルのみをもつ共通定義用モジュールを作成する。各モジュールからは，共通定義用モジュールを include して使用する。
- 読み込み順番の混乱を避けるため，*request-config.xml からは include は行なわないようにする。

TOP