本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)
目次
XMLは情報通信、定義情報ファイル、データベースなど活躍場所が多い非構造化データ
様々な種類がある非構造化データのデータフォーマットの中で古くから導入しているのがXMLデータフォーマットだと思います。XMLフォーマットは非常に多機能なデータ形式ですが、今回は概要だけをご紹介したいと思います。
XML(Extensible Markup Language)とは
XMLについて、IT用語辞典の内容を引用します。
XMLとは、文書やデータの意味や構造を記述するためのマークアップ言語の一つ。マークアップ言語とは、「タグ」と呼ばれる特定の文字列で地の文に情報の意味や構造、装飾などを埋め込んでいく言語のことで、XMLはユーザが独自のタグを指定できることから、マークアップ言語を作成するためのメタ言語とも言われる。
引用:XMLとは – IT用語辞典
文章だけでは伝わりにくいと思いますのでXMLのサンプルを使って説明したいと思います。
構造は階層構造
XMLと同じマークアップ言語にホームページのデザインを作るHTMLがありますが、XMLは非構造化データを持つことに特化したマークアップ言語です。
下記のように「<>」で括られたタグと呼ばれる文字列単位で情報を持ち、「<xxx>」から始まり「</xxx>」で終わるまでが1つの情報になります。また、タグの中にタグを持たせることができるため、情報を階層構造で持たせることができます。例えば下記の例の場合、「gixo」→「product」→「name_en」のタグの中に「graffe」という文字列情報が入っていることになります。
また、XMLは非構造化データであるため、データベースのテーブルのような構造化データと異なり、タグの構造は自由に変えることができます。下記の例の場合、「product」は2つあり、graffeには「member」が2つで「url」が1つに持ってるのに対して、gaapには「member」が1つで「url」はありません。
要素(element)と属性(attribute)
XMLではタグで囲まれた情報を「要素」、タグ内にも情報の情報を「属性」として分けて持つことができます。
上記の例の場合、「product」タグの中の「id」が属性になります。特に決まりはありませんが、属性は検索キーワードとして使われることがあり、上記の例の「product」要素は複数あり、一意に特定することができませんが、「id」属性が「001」の要素はgraffeだけになり一意に特定することができます。
情報の持ち方が自由だから導入範囲は広い
XMLの解析・情報取得にはXMLパーサーなどによるプログラミングスキルが必要になるためSQL命令のような容易さはありません。しかし、非構造化データの特徴である「情報の持ち方が自由」なメリットを生かし、アプリケーションの設定ファイル、Web APIの問合せ情報/問合せ結果情報などで2000年ごろから使われています。