“XML”とは?~だいたい伝わるIT用語解説
異なるシステム間のデータ連携などで、”XML”という用語が出てくることがあります。
直接”XML”に触れる機会が無いとしても、データ構造というものを理解するうえで分かりやすい一例になると思うので、システムを使用するならばゼヒ理解しておくことをお勧めします。
“XML”は言語の一種
といっても、英語や日本語のように私たちが会話に使用する言葉ではなく、コンピューターでデータを扱うのに適した言語、という意味です。データの記述方式といったほうがイメージしやすいかも。
“XML”は「Extensible Markup Language」の略で、「拡張可能なマーク付け言語」という意味です。
では、”マーク付け(マークアップ)言語”とは何でしょう?
英語圏での出版業界では、印刷に関する指示を原稿の余白に記述する作業のことを「marking up」と呼んでいました。転じて、コンピュータ上の言語として、データについての構造や情報を記述するための言語を「markup language」と呼びます。
“XML”の構成
<要素名 属性名="値">内容</要素名>
と書いてみたものの、正直これだけだとピンとこないと思いますので、具体的な記述については下記「”XML”の記述例」で解説します。
“XML”の記述例
<?xml version="1.0" encoding="UTF-8" ?>
<料理 name="オムレツ" amount="1人分">
<所要時間 amount="5分" />
<材料>
<素材 amount="2コ">卵</素材>
<素材 amount="2g" remarks="1つまみ">塩</素材>
<素材 amount="30cc">牛乳</素材>
<素材 amount="10g">バター</素材>
</材料>
<作り方>
<手順 order="1">卵をすべてボールに割り落とす</手順>
<手順 order="2">塩と牛乳を卵に加え、泡立たないよう混ぜる</手順>
<手順 order="3">フライパンを熱して、バターを溶かす</手順>
<手順 order="4">卵をフライパンに流し入れ、かき混ぜながら熱する</手順>
<手順 order="5">固まり始めたら<ポイント>火からおろす</ポイント></手順>
<手順 order="6">全体を端に寄せて外から包むように形を整える</手順>
<手順 order="7">奇麗な面が表になるよう皿に盛りつけて完成</手順>
</作り方>
</料理>
構成の特徴
- “料理”、”材料”、”素材”、”作り方”、”手順”を「要素」といいます
- “name”、”amount”、”order”を各要素の「属性」といい、属性の「値」も続けて記述されます
- <要素名>(開始タグ)と</要素名>(終了タグ)で囲われた中身を各要素の「内容」といいます
XMLの構成を上記の具体例でみていくと、いくつかの部品の組み合わせで出来ていることが分かると思います。なお1行目には、XMLのバージョンやファイルの文字エンコーディングを記載します。これはお約束事なので、きちんと記載しておきましょう。(文字のエンコーディングはテキストエディターなどで確認できます)
要素名・属性名・属性値の決まり事
- 要素名・属性名ともに、数字から始めることはできません。
- (同上)、アンダーバーから始めることもできます。
- (同上)、2文字目以降は数字やハイフン・ドットを含めることができます。
- (同上)、空白を含めることはできません。
- 属性の値はダブルクォーテーションで囲います。
細かい決まりはもうちょっとありますが、上記に従って分かりやすい命名をしておけば間違いはないと思います。(この「分かりやすい」はシステム関連の情報では結構大事です。)
構成の特徴
- 「要素」は内部に別の「要素」を持つ(階層構造を持つ)ことができます。
- 「要素」は繰り返し出現することができます。
- 一つの「要素」に複数の異なる「属性」を持つことができます。
- 一つの「要素」に同じ「属性」を複数持つことはできません。
- 「内容」の中で「要素」を持つこともできます。(上記例の<ポイント>~)
個々の構成の特徴としては上記のような点が挙げられます。
また、全体に関わる構成上の特徴としては
- 要素は開始タグ(<要素名>)と終了タグ(</要素名>)で構成されます。
- 要素は必ずしも内容を持つ必要はありません。(=空要素)
- 空要素の場合、開始タグと終了タグをまとめて記載できます。(=<要素名 />)
- 最上位の要素=ルート要素は1つのみ持つことができます。(上記の<料理>)
という点を覚えておくとよいでしょう。
“XML”の活用
“XML”はデータ定義の仕様ですので、様々なシステム間のデータ連携に使用されます。データ連携であれば他にも”CSV”だったり”固定長”だったり、といった様々なデータ定義がありますが、”XML”を使用するメリットは何でしょう?
“XML”は要素・属性の定義があるため、人が見てわかりやすいものになっています。また属性の設定やツリー構造により、複雑な構造のデータも定義することができます。
またウェブページを構成する”HTML”など”XML”をベースにしたデータ形式もたくさんありますし、データの保存形式として”XML”を活用するアプリケーションも沢山あります。
最近では”json”などより軽量なデータ形式もあるので、必ずしもベストなチョイスとは限りませんが、対応するアプリケーション(パーサー)も多く、別のデータへの変換も容易ですので、まだまだ活用される場面は多いでしょう。
“XML”を覚えておくことで、様々なシステムのデータに触れることができるようになります。汎用的で(わずかなルールにさえしたがっておけば)自由度も高いので、積極的に活用していきましょう。