XMLを変換する
KELFエクスポート機能の使い方
INDEX
KAZUSOFT
KELFメインページ
エクスポート機能の使い方
NetNewsログのXML化
FAQ集を作る
XMLの変換(HTML化)
KELFをXMLエディタ風に
KazusoftのHPを素材に
(番外)このハウツーの作成
LINKs
W3C仕様関係各種の情報XSLTプロセッサ
1. ブラウザでの表示
XMLをそのまま表示できるブラウザは限られています。IEならver5.0以降、NNならver6.0以降です。
文書を公開する場合、読み手がIE5.xを使っているか、NNならバージョンは6.0以降かなど、わかりません。インターネット上で公開する場合は特にそうです。パソコンを買ったときインストールされていたのがIE4.0だったので、今でもIE4.0を使っている人だって大勢いるでしょう。
だから、はっきり言って、XMLにスタイルシートをつけただけの形で一般に公開することはできません。
じゃ、どうするのか。
XML+スタイルシートからHTMLに変換して公開するのです。
HTMLなら、細部はいろいろ異なるものの、すべてのブラウザで表示可能です。


2. 変換する意味
それなら最初からHTMLを書く、XMLを生成する意味はないのではないか、と思われるかもしれません。
しかしそれはどうでしょうか。
XMLを作り、それをブラウザで表示できる形に変換するという手法には、大きな利点があります。データ(文書)と表示方法を分離できるという利点です。
XMLでデータを作っておけば、同じデータから、さまざまな形の表示を生成できます。表示(デザイン)にあきたら、その部分だけ変えればいいのです。
あるいは、たとえば、

データ1
データ2
データ3

というXML文書があるとして、それぞれのデータから必要な部分だけを抜き出し、ひとつの文書を自動生成し、相手に渡すことができます。
データ1〜3から、データ4という別のXML文書を作ることもできます。

インターネット上なら、アクセスしてきたユーザーの要望に沿う表示を、その場で作成し、ユーザーに見せることもできます。アクセスするユーザーごとに違う表示を見せることも可能です。これをやるには、ある程度、処理能力が高いサーバーが必要です。Kazusoftの処理能力の芳しくないサーバーでは夢のまた夢です。今でも反応が鈍く、みなさんをいらつかせることが多いのですから・・・(^^ゞ

で、Kazusoftでは、XML化した文書からあらかじめHTMLを生成しておき、これを公開するという手法をとっています。
簡単かつ確実かつ安価な方法です。

というわけで、この項では、この、XMLからHTMLをあらかじめ生成しておく方法を説明します。





3. XSLTプロセッサ
変換にはXSLTプロセッサというツールを使います。
XSLTはXSL Transformationの略です。
XSLTが必須というわけではありません。C, C++, Javaなどの汎用プログラミング言語でも変換は可能です。ただ、本節の目的に限れば、XSLTプロセッサを使うのがもっとも簡便だと思います。


なにはともあれ、まずXSLTプロセッサを入手しなければなりません。
筆者はJames Clark氏製作のXTというプログラムを使っています。フリーソフトです。ここの説明でもXTを利用させていただきます。
ページ左のLINK集のXSLTプロセッサという項目に、代表的なものを列挙しておきました。好みにあうプログラムを入手してください。それぞれ、リンクをたどれば入手できると思います。


4. 変換を実行する
XTが入手できたものとします。
XTはWindows上ではコマンドラインから使います。
変換の素材として、具体例の(2)で作ったFAQ集を使いましょう。スタイルシートをXSLで作成しましたので、すぐに変換できます。kelffaq.xmlとkelffaq.xslがあるディレクトリにXTをおいてください。
コマンドラインを開いたら、cdでkelffaq.xml、kelffaq.xslのあるディレクトリに移り、

 X:\somedir>xt  kelffaq.xml  kelffaq.xsl

を実行します。
なにかエラー表示がでたら、どこかがおかしいです。

よくやる間違いは文字コードの間違いです。
XTは日本語Windows標準のShift-JISを受け付けません。XMLファイル、XSLファイルともに、UTF-8かUTF-16で作成しておかなければなりません。KELFエクスポートのデフォルトはUTF-8で作成するようになっていますが、ファイルを編集した場合など、ついShift-JISで保存してしまいがちです。一度、文字コードを確認してください。

タグだけが流れ、文書の本体が表示されない場合、XSLのネームスペースがおかしいかもしれません。
XTはhttp://www.w3.org/1999/XSL/Transformネームスペースを使わなければなりません。具体例の(2)に戻り、エクスポートの最初のページで、スタイルシート形式としてXSL(1999/XSL/Transform)として、再度、XMLとXSLを作成してください。そして再び変換を実行してみてください。


うまくいけば画面に意味不明の文字が流れるはずです。意味不明なのは文字コードがUTF-8だからです。
画面に流れる意味不明文字が生成されたhtmlです。
そこで、

X:\somedir>xt  kelffaq.xml  kelffaq.xsl > kelffaq.html

として、画面に流れる意味不明文字をファイル化します。(XTではリダイレクト > は不要ですが、こう書いたほうがわかりやすいでしょう。)
出来上がったkelffaq.htmlをブラウザで表示してみてください。
うまく表示できるでしょう?
これだけのことです。実に簡単です。

具体例(1)のNetNews記事のXML化も、スタイルシートとしてXSL(1999/XSL/Transform)を選択し、あらためてXMLとXSLを作り直せば、上とまったく同じ方法でhtmlを生成することができます。





エクスポート機能の使い方 | NetNewsログのXML化 | FAQ集を作る
XMLの変換(HTML化) | KELFをXMLエディタ風に | KazusoftのHPを素材に
(番外)このハウツーの作成


作成:2002年1月15日
Copyright(C) 2002 Kazuhiro Kito(k-kito@kazusoft.com)