Webアプリ開発事始 第18回

XMLとWebアプリケーション(1)
~XMLの基本
長谷川裕行
有限会社 手國堂

拡張可能な言語

XMLがeXtensible Markup Languageの略で「拡張可能なマークアップ言語」を意味することは、ご存じの方も多いでしょう。“Extensible”の名が示すとおり、「拡張可能である」ことが特徴の言語です。名前からHTMLの拡張仕様のように思われがちですが、そうではなく、さらにそのベースとなっているSGMLから発展したマークアップ言語の規格です。


- 原点はSGML -

SGMLは“Standard Generalized Markup Language”の略で、元々は出版などのために文書情報を整えることが目的の文書記述言語でした。SGMLは1986年にISOで標準化され、さらにこれを元にHTMLが考案されてWWW(World Wide Web)へと発展しました。

SGMLからHTMLへの発展では、電子化されたテキスト情報中に他のテキストの場所を示すハイパーリンクの機能が重要な意味を持っていました。元々HTMLも、インターネット上でテキスト――つまり文書を配信するための記述言語だったのです。

その後、画像や音声へのリンクを扱えるようにすることで、HTMLはマルチメディア配信のための言語として広まりました。


- HTMLは「見せる」ための言語 -

一方XMLは、HTMLのようにテキスト情報を相互参照する目的ではなく、データ構造を柔軟に記述してデータ交換することを目的に策定されました。

HTMLもXMLもタグという表示・編集指定子によって情報を記述しますが、HTMLがあらかじめ決められたタグしか使えないのに対して、XMLはタグ自身を作成者が自由に定義できます。これによって、複雑な構造の「情報」を定義でき、アプリケーションの側ではそれをオブジェクトとして扱うことが可能となります。

HTMLは、基本的にブラウザでの「文書情報の見え方」を定義する言語です。文書が構造化されている必要はありません。従って、HTMLを使ってやり取りされる情報の内容は固定的です※1

対してXMLでは、自在に定義できるタグによって情報の構造を表現することが、最大の特徴です。

※1 ここで言っている「固定的」とは、元の文書の内容やその扱われ方が、送りてと受けての間で変化しないことを意味しています。CGIやサーブレットなどのWebアプリケーションでHTMLの内容を動的に書き換えることとは、まったく異なる概念です。


- XMLは文書の「構造」を表現する -

先述したように、HTMLは情報を固定的に提示するための手段です。電子データは複製を作っても質が劣化しないため、HTMLで記述されブラウザに表示されたテキストをコピーし、他のプログラムのデータとして利用することは可能です。

しかしそれは、単なるテキストデータであり、例えばデータベースのテーブルのように書式化されたデータをそのまま他のプログラムに読み込ませることはできません。

データベースのテーブルは、テキスト情報を最も効率的に管理し操作できる形態です。一定のルールに従って書式化されているため、それを扱うプログラムが書式化のためのルールを受け入れれば、どのような内容であっても、またどのようなデータ構造であっても問題なく扱えます。

情報を正確に伝達するためには、情報の作成者(送信側)とそれを表示する機能(受信側のプログラム)との間に「予め定められた変更不可能な共通のルール」が必要です。それがタグの役目です。HTMLではこのタグが固定的なため、柔軟なデータ構造を表現することはできません。HTMLの目的が文書の画面表示であるためです。

一方XMLでは、タグを作成者が自由に定義できます。つまり、文書中に任意の表現方法を埋め込むことができるのです。情報の受け手は情報の本体と共にその表現方法のルール(タグの定義)を受け取り、情報をその構造と共に自身のコンピュータ上で再現できます。


- ネットワークを介したデータ交換に -

XMLで記述されたデータは、HTML形式の文書としてブラウザで表示することも可能です。しかし本来の目的は、書式化された情報群をアプリケーション間で交換することです。従って、データベースや表計算ソフト、あるいは業務処理用のアプリケーショに読み込ませることができます。アプリケーションの側には、XML形式のデータを扱う機能が必要となります。

HTML形式のデータをアプリケーションで読み込むことも可能ですが、その場合、アプリケーションではただのテキストデータとして扱われます。

ExcelではHTMLで記述された表形式のデータをワークシート上に展開できますが、そのままの形で他のアプリケーションとデータ交換することはできません。XMLはそのままの形で、様々なアプリケーションが情報をデータ構造ごと読み込み、データベースとして処理・加工できます。

これによって、アプリケーションの垣根を取り払い、ネットワークを介したデータベースの交換が可能となるのです。


トップページ
拡張可能な言語
原点はSGML
HTMLは「見せる」ための言語
XMLは文書の「構造」を表現する
ネットワークを介したデータ交換に
XMLのメリット
XMLの基本事項
XML文書を作る
スタイルシート
あとがき

Copyright © MESCIUS inc. All rights reserved.