XML+XSLTによるWebコンテンツ自動生成

井上孝司 / ラトルズ / 2001/09/10

★★★

実用性はともかく

 コンピュータ関連の本は基本的に取り上げないことにしているが、本サイトのあり方に関連のありそうなトピックなので紹介する。本書は、XMLとXSLTを使って、日記のようなコンテンツをローカルに自動生成するシステムを構築しようという話である。VBScriptやWSHを使っているのでWindows限定だが、まあ他のプラットフォームでも簡単に再現できるだろう。実用性の点では疑問だが、XMLとXSLTの個人的なレベルでの練習としては役立つかもしれない。内容は超初心者向け。

 世の中には、XMLを書く必要のない、汎用性を持たせた「日記自動生成システム」が存在しているので、手軽に日記を自動生成したいと考えている人はそれらを物色するのがいいだろう。

 ちなみに、本サイトの読書メモと映画メモは、「読書メモについての注釈」に記しているように、最初から「自動生成」をしている。個々のエントリごとにMicrosoft Accessデータベース内にレコードを持ち、テキストの部分は個別のテキスト・ファイルとして作成し、Visual Basicのプログラムで検索ページ、一覧ページ、そして個別のHTMLファイルを一気に自動生成し、ステージング・サーバーにコピーする。そこで内容を確認した後に、変更があったファイルをプロダクション・サーバーにFTPでコピーするという仕組みになっている。本書の内容と照らし合わせると、XMLの部分がデータベースとテキスト・ファイルに対応し、XSLTの部分がVisual Basicに対応する。またローカルには、Linux上でPostgreSQLとPerlを使ってデータベースを直接見に行くシステムも作ってある。

 いま一番困っているのは、ページ間の参照の問題。新しいレビューを書くときに、過去の関係のありそうなエントリへのリンクを張ることがあるが、結局は記憶に強く残っている最近のエントリが参照されやすくなる。深刻なのは前方参照の問題で、AからBを参照したときに、BからAが辿れるようにしたいのだが(逆リンク)、これをきれいに実装する方法がわからないので手を付けていない。ハイパーリンクのリストを付加するのならば簡単なのだけれども、個々のリンクに何というか「意味」を持たせたいという気がする。リンクというリレーションに、「批判」、「同じ著者」、「同じスタンス」、「スーパーセット/サブセット」などの属性を持たせるという方法がいいのかもしれない。現時点では、この属性を文章の中に埋めこむ形で説明しているのだが、これでは再利用ができない。

 もちろん個々のコンテンツをこまめに保守すればいいのだが、エントリの数があるていど増えると、実質的に不可能となることがよくわかった。多くの場合は、サイト全体に対する全文検索やキーワード検索の機能を提供することで妥協するのだろうけれども、そもそもWebの本質はハイパーリンクにあるわけなので、そのハイパーリンクをコンテンツからうまく分けて管理するシステムが必要だと思っている。最初からコンテンツの全体像が見えているのであれば、リンクを「設計」すればいいわけだが、蓄積型のコンテンツでは柔軟性が要求される。

2001/10/21

TRCの該当ページへ

検索ページへ 目次へ 前へ 次へ