実践! XMLアプリケーションサーバ「BXS」
4. Webブラウザ毎に出力を切り替える
以上でスタイルシートの準備ができました。では実際にスタイルシートの切り替えを行ってみましょう。基本的には通常のスタイルシート指定とほぼ同じですが、以下の2点が異なっています。
- スタイルシート指定が1つだけでなく複数個ある
- 各スタイルシート指定に、media属性が指定されている
リスト5(bookmark-2.xml)の実際の定義例を見ながら解説していきましょう。
<?xml version="1.0"
encoding="utf-8" ?> |
リスト5 複数のスタイルシート指定例 |
スタイルシートを指定する行、<?xml-stylesheet ... ?>がIEとiモード用に1つずつ記述されており、それぞれのスタイルシート名が指定されています(IE 用のスタイルシートは便宜上、bookmark-2-explorer.xsl としてあります)。通常のスタイルシート指定と違うところは、media属性にWebブラウザの識別子を指定しているところです。IE用を指す識別子が“explorer”、iモードを指す識別子が“imode”になっています。
本来、media属性はレンダリングを行う媒体を指定するためのものです。いくつかのXSLTエンジンでは、この属性を用いてWebブラウザの指定を行うようになっており、BXSに内蔵されているXSLTエンジン「BXSLT」もその仕様を踏襲しています。正式な仕様で定められているわけではないので、Webブラウザを示す識別子としてどのようなものが指定できるのかはアプリケーションにより異なるのですが、BXSLTでは下記に示すような識別子を用いることができます。
|
||||||||||||
表1 BXSLTで指定できるおもなブラウザ識別子 |
識別子の正確な一覧については、BXSLTのソースディストリビューションに含まれるmedia.propertiesを参照してください。また、未サポートのWebブラウザについては bxs@baykit.orgにリクエストを出せばよいでしょう。
bookmark-2.xml を実際にWebブラウザで確認した例を図3と図4に示します。IE用の方は区別がつきやすいように見出しを少し修正してあります。
画面3 bookmark-2-explorer.xsl の出力結果 |
画面4 bookmark-2-imode.xsl の出力結果 |
少し感じが分かってきた方は、以下の課題に挑戦してみてください。それほど難しくはないはずです。
- サイト情報に携帯端末でも見られるかどうかの情報を追加し、その情報に基づいて表示するサイトを選択する
- 他のブラウザ(NN や Lynx)用のスタイルシートも定義し、それらのWebブラウザでも見れるようにする
今のサンプルのままだとNNとIEで出力を切り替えることができてもそれほど面白味はありませんので、CSS を用いてレイアウトに凝るとよいでしょう。
■さらにご自身で応用を
前後編にわたり、BXSを用いたWebページ作成の例を解説してきました。例題ということで非常に簡単なサンプルばかりでしたが、フロントページやブックマークという比較的身近だと思われる例を取り上げてみましたので、皆さんもぜひ実際に応用してみてください。
BXS はインストールが簡単で、XMLを手軽に利用できるうえに、JavaのServletエンジンとしても利用できます。今回ご紹介した例のような静的なXML文書を表示するだけでなく、Servletを利用した複雑なDOMプログラミングも処理できます。こういったさまざまなBXSの応用については横浜Baykitのメーリングリストで議論されていますので、興味をもたれた方はぜひのぞいてみてください。
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する
|
|