AD | all

[004] XMLと、One source Multi View

サイト情報を記述するのに、XMLを活用した。では、そもそもXMLとは何か、採用理由はなんだったのか。

XMLは、高々30ページの仕様書で定義されている。解説をつけると300頁ほどの分量になるが、基本的な要点は以下の通り;

1) 文頭にXML宣言文(version情報/文字コードを含む)
 例:<?xml version="1.0" encoding="Shift_JIS"?>
2) タグは開始タグと終了タグの一対で記述
 a) 基本形:<タグ>...</タグ>
 b) 省略形:<タグ/>(これ以外の省略形は許さない)
 c) タグ名は自由に記述可能
   - 大文字小文字は別ものとして扱う
   - 日本語も可能(推奨しない)
3) タグでくくられている単位を要素(エンティティ)と呼ぶ
 a) 要素は入れ子にすることが可能
 b) 一番上の階層に1つの要素が必要
 c) 要素は属性という形で複数の情報を持つことが出来る
   例:<AAA name="foo" comment="boo">aaa</AAA>

複雑に見えるかもしれないが、最初の要素は唯一であり、そこから樹形図のように末広がりに広がっていく構造を持っていることが定義されている。この形は何かに似ている。そう、Webサイトの初期構造図だ。サイト構成のラフスケッチの段階の絵である。

Webサイトを記述するには、2つの情報が必要だと考えた。1つは、ファイル構造に関する情報。次に、各ページ間のリンク情報。この2種類を GUI(Graphic User Interface)で描けないだろうか。更に自動解析機能により、既存のサイトの情報を取り出したい。ここがシームレスに行き来できれば、新規開発設計段階と、再構築時の設計段階が綺麗につながる。

見えないもの、あるいはプロデューサの頭の中にしかなかった情報を引っ張り出して視覚化する試みを続ける。サイトマップを自動生成できるようになったら、次は出来る限り人間が描いたサイトマップ図に似せようとした工夫した。サイトマップ上では、1つのページの親は1人しかいない、1つのページは1度しか描かれないアルゴリズムを用いている。サイトマップは3種類出せるようにした。クライアントへプレゼンした時に見栄えがよい sitemap、上から下への樹形(階層)図のような Hiermap、何クリックで辿り着けるかを同心円状に表現した circlemap。

これらのマップを見比べると1つのことに気が付く。実は全く同じデータである。情報の塊は全て「site.xml」に格納してある。ここにこれらの表示(位置)情報が記述されていて、それをマップの指定がされるたびに切り換えて表示しているだけである。「1 source Multi View」。データと見栄えとを切り離して設計しているが故の快適さ。ここで、XMLのデータベースとしての性格を活用している。勿論、site.xml ファイルは絵の表示にのみ使っている訳ではない。CSV形式に出力可能な表形式にも表示できる。技術は必要だが、やっていることは単純なデータ変換作業である。

このツールの中で、絵が描け、表が作成できた頃、AdobeとMicrosoftが中心になって、ベクトル規格である「SVG」の仕様策定が進んでいた。Adobeが進めている以上、Illustratorで編集できるようになるのは見えていたし、Microsoft ならVisioかとも予想した。サイトを視覚化したモノを SVG 出力する。出力して、SVG Viewer でブラウザ上で表示できるようにうなる。その後待望の Illustrator10 がリリースされた。SVGでの出力をチューニングして、Illustrator上でページ単位でグルーピングされているようにする。サイトマップを綺麗に描く時間が一気に短縮された。

今、site.xml にはその開発しているWebサイトの情報が全て詰まっているファイルになった(勿論人間に不要な情報も含まれているが)。今度は、そのファイルごと仕様書を発行できる機会を伺っている。XMLからPDFに。テンプレートを変更すれば、コマンド1つでクライアントに提出する仕様書が部分的にでも作成できる。方法は、XSLでもDSSSLでも、あるいは InDesign でも構わない。勿論クライアントに提出する全てのドキュメントの自動販売機にはならないだろう。しかし、デザイン性を求められるもの以外の定型処理は自動化できる見通しがある。それだけでもどれほど助かるか。

Webサービスが語られる今、XMLはデータ転送形式として語られることが多い。しかし、そうではない使い方がある。データベースとしての性格、情報の塊としての活用方法。今まで、使うたびに書き起こしていた情報を一箇所にまとめておき、使うたびにあるフィルターをかけるように見栄えを換えて表示する。

まだ製品化まで辿り着けるか不明だが、できるならこのサイト情報の記述方法( site.xml の定義)を鍛えて標準化まで持って行きたい。サイト定義情報が流通するようになったなら、その視覚化ツールはもっと増えるだろう。もしかしたらもっと楽しく楽にアイデアを実装/検証できる時代がくるかもしれない。

もう一言。XMLは理念の部分で支えてくれただけではない。世界中には多くの高性能なXMLツールが使ってくれと言わんばかりに置いてある、しかも無料で。これらがどれ程このツールの開発を手助けしてくれたか分からない。標準に則って進むということは、こういうことなのだろう。多くの善意が多くの露払いを喜んで行ってくれている。

XML形式で情報を記述しなければならない理由はなかった。しかし、XMLではない独自形式で取組む必要もなかった。XMLを採用した結果、様々なものへの連携が深まった。様々なものへのツナガリが生まれている。これほどWeb的な進み方はなかったろう。

XMLにも、その開拓者達にも、この時代にも感謝している。

以上。/mitsui