XMLのデータの利点の1つに汎用性の高さが挙げられます。先ほど挙げた書籍のデータも、XML形式で保存をしておけば、オンラインショッピングサイト、出版社、書店、取次、読者など、異なるユーザーであっても共有・加工できます。読者はブログに感想やアフィリエイト、取次は流通管理、書店や出版社は在庫管理ができます。
もし、それぞれが自分たち独自のデータ形式を作っていたら、データの相互運用は極めて厳しいものになります。
以下非常に短いですが、サンプルのXML文章をアップしています。このソースを見て、XMLの文法を簡単に確認してみましょう。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE hogehoge SYSTEM "hogehoge.dtd"[]> <person> <name>EHARA Akio</name> <age>20</age> <sex>male</sex> </person>
それぞれがどのような意味を持っているのかについて、見ていきましょう。
<?xml version="1.0" encoding="UTF-8" ?>
この文章がXML文章であることを宣言します。「XML宣言」は、“<?”で始まり、“?>”で終わるように記述します。
「version」属性は必須で、必ずXMLのバージョンを設定しなければなりません。しかし、XMLは1.0と1.1のバージョンしかなく、通常は1.0が選択されます。「encoding」属性は文字コードの設定をします。
<!DOCTYPE hogehoge SYSTEM "hogehoge.dtd"[]>
これは「DTD(文書型定義)」を示しています。DTD(文書型定義)の役割は、「このXMLはこのタグがこんな意味を持っていますよ!」ということを示します。この場合は外部に記述している「hogehoge.dtd」を参考にするように指定します。もちろんDTDは内部に記述することもでき、イメージとしては外部のファイルを参考にしたり、内部ファイルでも書き込みができるCSSみたいな感じでしょうか。
DTDには独自の構文があり利用するためには、それらをマスターしなければなりません。
<person> <name>EHARA Akio</name> <age>20</age> <sex>male</sex> </person>
<person>のタグでくくられているのが、「XMLインスタンス」といわれ、データが入ります。このデータ部分がXMLの中心となるものです。このタグはユーザーで任意で設定が可能です。
XMLをより理解するためには、どのような経緯で生まれたか、その歴史について見てみましょう。
そもそもマークアップ言語が開発された目的は、「マニュアルをどう保存していくか?」というものでした。もし、特定のアプリケーションでマニュアルを書いて、保存したとしても、その後そのアプリケーションが使えなくなったら、マニュアルの閲覧も修正・加筆もできなくなります。そこでテキスト文章上で、タグを使って構造や意味を持たせる方法が生み出されました。
1979年に、IBMが「GML」(Generalized Markup Language)を発表し、1986年にGMLの後継言語である「SGML」(Standard Generalized Markup Language )が開発されました。SGMLは欧米の公文書やマニュアルの電子化に採用されました。
このSGMLを基にWebアプリケーション用の言語として開発されたのが、「HTML」です。1993年に最初のHTMLが提出されました。その後、HTMLの開発が続けられ、1997年に4.0までバージョンが上がりました。
SGMLは完成されたシステムでしたが、多くの機能と複雑な仕様により、扱いが面倒なもので、文章処理も重いものでした。そこで、SGMLの機能を省き、よりシンプルなものとして「XML」が1998年に登場しました。SGMLより簡単に学習でき、XMLを使った処理もローコストでできるので、さまざまな場面で利用されました。
XMLが応用されたものとして、XHTML(Extensible HyperText Markup Language)が2000年に登場しました。XHTMLはHTMLの文法をXMLで定義したものです。特徴としては、ほかのXMLで定義された画像言語や数式の記述などを取り込めます。
さて、駆け足でXMLについて説明をしてきましたが、いかがでしたでしょうか?
冒頭でも述べたように、XMLはいろいろなアプリケーションに利用されています。Microsoft Office 2007でのXML採用やXML+ブログなど、ますますXMLが利用される場面は増えてきています。今回の記事でちょっとでもXMLが身近なものに感じてもらえれば、幸いです。
Copyright © ITmedia, Inc. All Rights Reserved.