←戻る

Wordsworth - XMLファイルの表示に挑戦!


WordsworthVer2.2から追加された「シンプルXML」テンプレートを使えば、作成した用語集をXML形式で出力することが可能です。
作成したXMLファイルをInternet Explorerで表示すると、用語集がツリー構造で表示されますね。(残念ながら、Netscapeでは表示できません。私はネスケ派なんですが…)

でも、このツリー構造での表示だけだと何か物足りない。というわけで、このページでは、XSLとかいうやつを使って、XMLファイルを見栄えよく、かつ様々な形式でブラウザに表示する方法を軽く紹介します。私も詳しいことはあまり知らないので、XMLの詳細は書籍等をご覧ください。


■前準備
XSLを使ってXMLのページをInternet Explorer5.xで閲覧するには、msxml3.0が必要です。
msxml3.0のインストール方法は『たのしいXML』というサイト内のここなどに詳しく書かれています。

簡単に言うと、msxml3_ja.EXE/XmlInst.exeという2つのファイルをインストールすることになります。場合によっては、InstMsi.exeのインストールも必要になります。まあとにかく、『たのしいXML』をご覧くださいませ。

Internet Explorer5.xとmsxml3.0とがあれば、XSLで整形したXMLファイルを閲覧可能になります。


■WordsworthでXMLファイルを作成する
なんのことはありません。すでに作成済みの用語集でHTML保存(HTMLつーか、XMLだけど)する際に、シンプルXMLテンプレート(Ver2.2以降より付属)を選択すればOKです。自動的にxmlという拡張子のついたファイルが作成されます。

注:Wordsworthのオリジナルタグの<BY-PASS></BY-PASS>を使ってその中にHTMLタグを書いていると、XMLファイルをブラウザで表示するときにエラーになることがあります(予期せぬタグがある、って)。見栄えはXSLでどうにでもなるので、XMLを前提とするならば<BY-PASS></BY-PASS>は使う必要はないと思います。

ためしに、作成したXMLファイルをInternet Explorerで表示してみてください。「−」「+」ボタン付きのツリーで表示されますね。
(サンプル:network.xml)


■XSLファイルを自分で作る
残念ながら、WordsworthにはXSLファイルは付属してません。ええ、ご自分で作ってくださいませ。次回のバージョンアップの際には、もしかしたらサンプルのXSLファイルを付属するかも。

で、XSLファイルの作りかたなんですが…、とても説明しきれないので、とりあえず簡単なサンプルをご覧ください。

(サンプル:style1.xslstyle2.xsl

style1.xslは、自動的に用語に通し番号を付けて、「キャプション」(用語)で並び替えて表示するサンプルです。style2.xslは「読み」で並び替えするようにしたサンプルです。

xsl:for-each」とか「xsl:sort」とか書かれているところがXSLのポイントなんです。
詳しくは『たのしいXML』のXSLサンプルの章などをご覧ください。


■XSLファイルを切替て用語集を表示する
上で作成したnetwork.xmlというXMLファイルに適用するXSLファイルを、style1.xslstyle2.xslで切り替えつつ表示してみます。XSLファイルを簡単に切替るにはJavaScriptを使用します。
例のごとく、『たのしいXML』のここに方法が書かれています。

説明するよりも見た方が早いかな。下のサンプルを開いて「ソース表示」してみてください。

XSLを切り替えるサンプル(実際に切替動作も実行できます)


さて、とにかく、以下の4つのファイルさえあれば、XMLファイルを、XSLファイルを切り替えつつブラウザに表示することが可能になります。

ファイル 説明
network.xml XMLファイル。Wordsworthで作成する。
style1.xsl XSLファイルその1。自分で作成する。
style2.xsl XSLファイルその2。自分で作成する。
xml_sample.html XSLファイルを切替て表示するサンプル。自分で作成する。

ちなみに、上記の4つのファイルは別にWebサーバ上になくてもよく、ご自分のパソコンに保存したものでもちゃんと表示されます。ここで紹介したサンプルを基にして、いろいろと表示方法を試してみてはいかがでしょうか。

※XML、XSLの技術的な質問についてはお答えできません。


■参考文献

『たのしいXML』 屋内 恭輔著 2400円 株式会社ソーテック社
http://www.cityfujisawa.ne.jp/~yanai/xml/index.html