最近,Webのトップページなどで「RSS」や「XML」などの文字(RSSデータへのリンク)を見る機会が多くなった。例えばITproのトップページ(http://itpro.nikkeibp.co.jp/)は,「RSSフィード」といったタイトルで,ITproが掲載しているニュースや解説記事の要約をアップデートしている(図1)。RSSリーダーなどのソフトに,これらのRSSフィードを登録しておけば,ニュースや解説記事などのヘッドラインを見ることができるわけだ。RSSデータはXML形式(図2)で記述されている。XMLというデータ形式は,インターネットで扱われるデータ形式として広く利用されている。本講座では,このように露出が増えてきたXMLの基本を,実例を交えて解説していく。
流行のAjax(Asynchronous JavaScript and XML)の「x」は,XMLの「x」である(AjaxではXMLを利用していないものもある)。AjaxでのXMLの役割は,Webブラウザ側でのJavaScriptの実行に必要なデータを,サーバー側から取得する際の一つのデータ形式ということである。XMLはテキストでデータを記述することができるので,インターネットでの通信や公開のためのデータ形式として都合がよい。
プログラムが扱いやすい文法
今のWebページは,XHTMLという書式で作成されたものが多くなっている。XHTMLは,HTMLをXML形式に変更したもの。
XHTMLもHTMLも,テキストでコンテンツを記述するので,ソースを一見しただけでは違いを感じることができないかもしれない。<と>で囲んだタグを用いてコンテンツやデータを記していくという点ではどちらも同じである。違いはタグの記述方法などの文法にある。
XHTMLの文法は,HTMLよりも厳密に定められている。例えばHTMLでの段落区切りを意味するP要素は,その終了タグを省略することができる。一方のXHTMLでは,終了タグを省略することはできない。それはXMLのルールがそうなっているためで,XMLをベースにするXHTMLもそれに従っているのである。
何らかのプログラムからXHTMLまたはHTMLドキュメントを操作したい場合,ドキュメントの構成が厳密であるほど,プログラムを作りやすいことは想像できるだろう。XMLではドキュメント作成時の文法が厳密に定められているので,プログラムからドキュメントを操作する際に都合がよいわけだ。実際,XMLドキュメントを操作するためのAPIが,さまざまなプログラミング言語で実装されている。
自分で名前を付けて定義できる
XMLの特徴として押さえておきたいものが,もう一つある。それはドキュメントで使用する要素の名前を自分で決めることができることだ。自由に付けた名前の要素を識別するための仕組みとして名前空間という概念が取り入れられている。
名前空間については,話が長くなってしまうので,改めて解説する。RSSデータや,そのほかのXMLデータでは,まだ見たことがないような名前のタグが使われている。これらは,XMLとしての枠組みの中で,新しく命名された要素の名前なのだ。
XMLの利用例は,インターネット上で直接目に触れることが少ない。サーバー側でのデータ管理フォーマットして使われていたり,SOAP通信のデータとしてやりとりされたりしている。また,インターネット以外での利用例も多く,アプリケーションでの設定ファイルとしてXMLが使用されていたり,Officeドキュメントのフォーマットに採用されていたりする。