XML

 
 

XMLとは

XML (eXtensible Markup Language)とは、データを記述するための文書形式。
HTMLと同様にタグを使ってデータをマークアップする。

XMLの例と構造

以下のような表データ(ユーザ一覧)をXMLで表現する例を示す。
idnamesexage
0001Ryumale20
0002Emifemale23
0003Keimale29
XML文書に変換すると以下のようになる。
 
冒頭の「<?xml version="1.0" encoding="UTF-8" ?>」はXML文書のバージョンとエンコーディングを指定するための宣言。
一番外側の要素(上記の例では「<users>」)を「ルート要素」と呼ぶ。
 

XMLの利点

XMLを使ってデータ送信する利点としては、以下の点が挙げられる。

異なるプログラミング言語間でデータ共有が容易

XMLは多くのプログラミング言語でサポートされており、広く使われている。そのため、異なるシステム間でのデータの共有が容易であり、システムの相互運用性が高い。

人間にとっての可読性も高い

データの意味に合わせてタグの名前を自由に定義することができるため、人間が見てもデータの意味が分かりやすい。

XMLの欠点

XMLを使ってデータ送信する欠点としては、以下の点が挙げられる。

ファイルサイズが大きい

テキスト形式であり、タグ名を各データの始めと終わりに記述するため、ファイルサイズが大きくなりがちである。
データ解析する際にパフォーマンスに影響を与えることがある。
 

DTDについて

DTD(Document Type Definition: 文書型宣言)とは、XMLの構造を定義するためのデータのこと。
DTDを定義することによって、XML文書中にどのように要素や属性があらわれるのかなどを取り決めることが可能。
 
以下、ユーザ情報を表現したXMLを例として示す。
DTDは<!DOCTYPE>タグで囲まれた部分で、後半の<users>タグ配下のデータの定義を記述している。
 

DTD内の宣言の種類

DTDには以下4種類の宣言を含めることができる。
概要
要素型宣言要素(タグ)についての定義
属性リスト宣言属性についての定義
実体参照宣言1つのXML文書を複数に分割管理するために利用。
記法宣言
 

実体参照宣言(エンティティ参照)

以降では実体参照宣言(エンティティ参照)の種類と利用例を紹介する。

内部エンティティ(XML custom entities)

内部エンティティとは、宣言の内部にエンティティの内容が記述してあるもの。
エンティティ名を「&」と「;」で囲むことで参照できる。
 
出力結果:「私の名前はShukapinです。」
 

外部エンティティ(XML external entities)

外部のエンティティとは、外部ファイルにエンティティが記述してあるもの。
キーワードを付け、ファイルのパスまたはURLを指定することで参照する。
 
http://shukapin.com/a.xmlの中身:
 
出力結果:「私の名前はShukapinです。」
 

パラメータエンティティ(XML parameter entity)

パラメータエンティティとは、DTD内のみで参照するエンティティのこと。
エンティティ名の前に「 % 」を記述して宣言する。
外部DTDの読み込みはできるが、ローカルDTDの読み込みはできない仕様なので注意。
エンティティ名を「%」と「;」で囲むことで参照できる。
 

参考リンク