アンテナハウス株式会社
2001年2月27日
XMLというのは情報を表現するための技術領域の一つです。XMLでは情報の内容とその処理手続きを明確に分離して、両方を目に見えるテキストで記述します。これに対して、今までの情報表現技術では、情報とその処理手続きをコンピュータだけが処理できる「バイナリー・データ」として扱います。バイナリー・データでは情報を人間の眼に見えない形に表します。しかし、XMLでは情報の内容を目に見えるテキストとして表し、処理手続きをタグ付けという形式で表します。ここが根本的な違いです。これによって、従来、クローズドでアプリケーションに依存した方法で情報を表現していたものが、オープンでアプリケーションから独立した情報表現方法になります。
XMLは、上に述べたように革命的な技術です。従って、常識的に考えれば、世の多くの革命と同じように簡単には成立しないと考えられます。しかし、インターネットの普及によって、情報をアプリケーション独立の形式で交換したいというニーズが爆発的に増えています。ドキュメントに付いて言えば、ドキュメントをワープロで作成して、手近なプリンタで印刷して、配布すれば目的完了という時代は確実に終わりました。時代がXML技術を必要としているということは言えると思います。
XMLを学ぶのは、日本人が英語を学ぶのと似ていると思います。プログラマにとっては、XMLをマスターするのは簡単でしょう。しかし、現状の技術を前提にすると、一般の人がXMLをマスターするのは困難と考えます。
XMLはSGMLをベースにして生まれました。一般に、SGMLの中で実装に難しかった部分を省略して簡易化したと説明されることが多いですが、重要なことはSGMLは、DTDを必須としているのに対して、XMLはDTDを必須としていないことです。むしろ最近では、DTDを使わないwellformed(整形式)のXML文書を処理するプログラムとその応用がどんどん発達しています。整形式という概念を導入したことでXMLの爆発的普及が可能になった、とも言えます。
XMLは、技術の進歩が早く、かつ、応用分野が幅広いため書籍は出版された時点で古くなりがちです。従って、特に日本語では良い参考書はなかなかありません。そんな状況でXML技術全体を学ぶのにお勧めとすれば、「XMLバイブル」(エリオット・ラスティ・ハロルド著 日経BP出版センター発行)と思います。しかし、この本も既に古くなっている部分が多々あります。
これは、大変肝要な質問です。一般的に、タグ付け文書を作るのは、WYSIWYGのワープロで文書を作るのと比べて、タグを明示的に入力する分だけ余分な手間がかかります。それに、タグが正しくついているかどうかをチェックして、修正するには専門的な知識が必要です。ですから、一度だけ使って捨ててしまうような文書をXML化するメリットはまったくありません。どんな文書をXML化するべきかは、ユーザが熟慮しなければなりません。
XML化してメリットのある文書は、少なくとも2回は使うことが確実な文書です。例えば、HTMLにしてWebやIntranetのブラウザ向けに提供し、一方、印刷物で納品することを求められる場合、両者を同じ内容で手間を掛けずに作成したいなら、ソース文書をXMLで作成してください。大量の文書を機械的に処理することが求められる場合も、ソース文書をXMLで作成すれば良いと思います。
SGMLは、欧米では「静かなる革命」と言われました。しかし、実際に静かなままで終わったようです。日本でも、官公庁や大企業の一部で採用されたのみとどまりました。確かに、普及しなかったと言えます。日本で普及しなかった理由は、SGML技術がとても難しく、ツールが高価で欧米製品中心のためだと思います。XMLも技術的に難しくエンドユーザにとっては敷居が高い部分はありますが、ツール類は確実に安価になり、しかも進歩しています。また、XMLを求める時代背景も、SGML時代とは比較にならないほど変わっていますので、今後普及する可能性は大きいと考えます。
Microsoft Wordは、XMLのような構造化文書を編集するのには向かないと思います。XMLに本気で取り組むなら、まず、Microsoft Wordを、ごみ箱に捨てることから始めてください。一般的に、非構造化のWYSIWYGワープロで作成した文書をXML化することをアップ・コンバージョンと言いますが、アップ・コンバージョンは、自然界の法則に反しますので困難です。
帳票のように、フラットで比較的固定的な構造をもっているものは帳票作成用のWYSIWYG XMLエディタを使って作成できます。しかし、一般のドキュメントのように柔軟な構造をもつ文書をWYSIWYG方式で編集するツールをMicrosoft Word並みの価格で製品化するのは困難でしょう。要求される機能が高いのに対して、相対的に市場がかなり小さいためです。従って、現時点では、そのようなツールは一般に高価です。
XMLにおいては、ドキュメントを作成するのにDTDは必要ありません。あまりDTDを意識しすぎますと却ってドキュメントを作成する際の生産性が落ちると思います。ドキュメントを書く際は、DTDのことは気にしない方が良いのではないでしょうか?しかし、使うことのできるタグセットとそのルールは何らかの形でドキュメント化して共有する必要があります。特にドキュメントを、配布したり交換する際は、どこかにゲートウエイを設けてチェックする必要はあると思います。
用途別のDTDはさまざまに提案されています。例えば、こちらをご覧ください。