リソースセレクト
概要
Durianは、端末ごとの適切なリソースを選択するために、システムマッピング(systemMapping.xml)と、ユーザマッピング(userMapping.xml)というファイルを参照しています。
イメージ、着メロ、Javaアプリケーション、ムービーなどすべてのリソースの選択に使われています。
システムマッピングはDurianのリソースセレクトを正常に機能させるためのマッピングが含まれています。
ユーザマッピングは、ユーザが編集することができ、特定の端末向けに用意したリソースを優先的に選択されるようにすることができます(システムマッピングよりもユーザマッピングの設定の方が優先されます)。
※このXMLファイルはアプリケーションルート/WEB-INF/durian/confディレクトリにあります
以下、「イメージの選択」を例にシステムマッピングファイル(systemMapping.xml)と、ユーザマッピングファイル(userMapping.xml)の設定方法について解説します。
イメージの選択は<img>タグで行われます。
以下のユーザマッピングの例では、JPEGに対応した端末に対しjpg拡張子を優先的に使用するように設定し、GIFに対応したDoCoMo端末は「i」サブディレクトリのgif拡張子のファイルから選択するよう指定しています。
userMapping.xmlの例
<imageMapping imageFormat="JPEG"> <pathTemplate>*.jpg</pathTemplate> </imageMapping> <imageMapping networkService="i-mode" imageFormat="GIF"> <pathTemplate>i/*.gif</pathTemplate> </imageMapping>
imageMapping要素は、その属性で指定した条件にマッチする端末に対し、マッピングを行うことを意味します。
マッピングはpathTemplate要素で指定します。
pathTemplateの内容は、リクエストURIに対するイメージリソースへの相対パスを表します。
i/*.gifはiサブディレクトリ内のイメージにマッピングします。
*に入る部分は、Durianが自動で判断します。
マッピングしたイメージが存在しなければ、次のimageMappingへのマッチングを行います。
つまり、前のimageMappingほど優先度が高くなります。
具体的には、上記のXMLによる <img src="logo.jpg" alt="Durianロゴ" /> というイメージのセレクト順は以下の通りとなります。
優先順 | DoCoMo(JPEG非対応) | DoCoMo(JPEG対応) |
---|---|---|
1 | logo.jpg | i/logo.gif |
2 | i/logo.gif |
優先順位2を過ぎてもリソースが決められない場合は、システムマッピングが使用されます。
システムマッピングもユーザマッピングと同様の形式をしたXMLファイルで、同じようにリソースセレクトが行われます。
※src属性で相対URLが指定された場合のみ、リソースセレクトの変換が行われます。