WWW INFOMATION
XML top >>XMLとは?

XMLとは?

 最近XMLと言う言葉を良く聞きます。XMLは、ExtensibleMarkupLanguageの略であり、インターネット上で様々なデータを扱う場合に特に利点を発揮します。1998年にW3Cにより勧告された比較的新しい言語ですが、仕様が簡単であるため、広く使用されるようになりました。

 以下、XMLの基本的な事項を確認します。(実際のXMLの書き方の説明はありません。手早く学びたい方は、次の章から読み始めて下さい。
XMLって何? メリットは?
デメリットは? 多少は歴史を知っておこう。

XMLって何?

 XMLは、多様な情報を「情報の意味」と「情報の内容」に分けてテキストで記述する方法(言語)です。(と書くと難しいのですが、、。)

 例えば、「お客の情報をまとめて管理したい!」、なんて場合にXMLを使用すると、名前、住所などお客の情報を一元的に管理できますし、その情報をインターネットやプログラムから利用できるようになります。

 例1)インターネット上でお客の情報を確認する

 XMLはテキストファイルですので、何かソフトがなければデータが見えないとか、OSが違うとデータが見えないということがありません。インターネットに公開しておけば、どこからでも参照することが可能です。

  例1を見て、HTMLと何が違うの?と思った方もいると思います。例1では、XMLに表示の設定を行っているため、表示はHTMLと変わりません。例2でわかりやすいようにXMLそのものを表示してみます。(XMLがデータで構成されていることがわかると思います。)

 例2)例1のXMLデータ

 HTMLは、表示に特化しているため、たとえ何かデータがあっても、そのデータが何を意味するのかコンピュータは判断できません。
 しかし、XMLはその「データの意味」を判断できますので、特定のデータのみ取り出したり、データを集計したりといったことが可能になります。

 例えば、以下の映画情報を表示するHTMLがあったとします。(HTMLがわからない場合、読み流して下さい。)

<html>
<head><title>映画のレビュー</title></head>
<body>
  <h1>ショーシャンクの空</h1>
  <table border="1">
    <tr><td>得点</td><td>90</td></tr>
    <tr><td>感想</td><td>とても良い</td></tr>
  </table>
<hr>
  <h1>タイタニック</h1>
  <table border="1">
    <tr><td>得点</td><td>10</td></tr>
    <tr><td>感想</td><td>長い</td></tr>
  </table>
</body>
</html>

 このHTMLは表示するとこのようになります。人間がこの表示を見れば、どのデータが映画のタイトルで、どのデータが得点で、どのデータが感想かはわかると思いますが、プログラムからは判断するのが非常に面倒なのです。プログラムから観れば、「映画のタイトル」も「得点」も同じ文字のデータで何を意味しているのかわかりません。

 ここでこのデータをXMLで書いてみます。

<?xml version="1.0">
<all_movies>

  <movie>
    <title>ショーシャンクの空</title>
    <point>90</point>
    <review>とても良い</review>
  </movie>

  <movie>
    <title>タイタニック</title>
    <point>10</point>
    <review>長い</review>
  </movie>

</all_movies>

 人間が見るとちょっとわかりにくいですが、プログラムから観れば、これ(XML)はわかりやすいものとなります。<>で囲まれたものをタグというのですが、例えば、映画のタイトルだけ抽出したい場合、タグ<all_movies>の<movie>の<title>を抽出するようにプログラムに命令すれば、"ショーシャンクの空"、"タイタニック"を取得できるようになります。
 また、タグ<point>が90以上のデータを取り出すことも簡単にできます。取り出したデータは、表示に使用することもできますし、別のプログラムで集計に使用することもできます。

 ちょっとわかりづらかったかもしれませんが、XMLはHTMLに比べてプログラムからそのデータを扱いやすいということが特徴です。

XMLのメリットは?

 XMLの利用を考えた場合、メリットは、以下3点が考えられます。

  1) 誰でも簡単に使える
  2) ブラウザから使える(インターネットと相性が良い)
  3) プログラムからデータが扱いやすい(開発効率が高い)

 以下2つの例は、同じXMLファイルに対して表示方法のみを変更しています。(こういうことが、簡単にできます。)

 例A) 表示方式1
 例B) 表示方式2

 XMLは、ホームページに利用されることが多いですが、ホームページのみの利用に制限されるものではありません。例えば、地図データをXML形式でインターネット上に公開することにより、その地図データを各ユーザが別々のプログラムで利用することが可能です。同じ地図データをAさんは、マーケティングに使用し、Bさんはカーナビの元データに使用するといったことが可能です。(XMLデータを扱うプログラムが各種用意されているため、開発も容易です。)

 また、XMLはオブジェクト指向と親和性の高い仕様となっているため、JavaやC++など現在主流のプログラムとの相性も良くなっています。

※システム開発において、設定ファイル(外部ファイル、コンフィグファイル)でXMLを使用することもありますが、INIファイルと比べ、ほとんど利点はありません。XMLファイルの利点はデータベースが使用できない環境で、同形式のデータを大量に管理できる点にあります。設定ファイルのような、設定項目がひとつひとつ異なるようなデータでは、むしろ、INIファイルのような単純な形で設定したほうが、処理効率も開発効率も高くなります。

XMLのデメリットは?

 ホームページでのXML使用を前提としたデメリットです。
  • 検索に引っかからない。
  • HTMLに比べて作成に手間がかかる。
  • JSONのほうが手軽でわかりやすい。

多少は歴史を知っておこう

 HTMLは表示する点については優れていますが、データを管理するのには適していません。(もともとHTMLはデータを管理するために作られたのではなく、文章を表示するために作成された言語です。)そこでW3Cはインターネットの更なる発展を願い、データ管理も可能で、HTML並みに記述も容易なマークアップ言語としてXMLを1998年に制定しました。

 その後、XML関連の仕様が次々と出てきました。XMLの構造を定義するXML Schemaや、XMLを別の表示形式に変換するXSLTなどは、XMLを補完し、その利便性を高めます。SOAPはXMLを使用して、通信上のデータのやり取りを定めます。他にも、XMLで定義されたグラフィックを扱うSVGや、数式を扱うMathML、マルチメディアを扱うSMILEなどXMLを前提として定義された仕様もあります。

 現在も次々と新しい関連仕様が定められつつあります。

 ちなみに、HTMLもXMLもSGMLという言語を元に作成されています。SGMLは文書構造を把握するための言語ですが、処理効率が悪く難かしいという特徴を持っています。

戻る   進む