XML(Extensible Markup Language)

分類
テクノロジ系 アルゴリズムとプログラミング
出る試験
基本情報応用情報
重要度
★★★☆☆

タグを自分で決めて、データの構造を木の形で表す言語。意味を保ったまま受け渡しできる。

もう少し詳しい説明

XMLは、データの構造を、タグを使って表す言語です。HTMLと同じマークアップ言語の仲間ですが、狙いが違います。

HTMLは見せるため、XMLは受け渡すための言語です。

<書籍>
  <題名>基本情報技術者試験の教科書</題名>
  <価格 通貨="円">2200</価格>
</書籍>

タグを自分で決める

いちばんの特徴は、どんなタグを使うかを自分で決められることです。HTMLでは <h1> や <p> と、使える種類が決まっていました。

自分で決められると何が変わるのか。値だけでなく、その値が何であるかも一緒に運べます。

2200 という数字だけを渡されても、価格なのかページ数なのか分かりません。<価格>2200</価格> なら取り違えようがありません。データに意味が付いたまま届く、というのがXMLの値打ちです。

名前のExtensibleは「拡張できる」という意味で、ここを指しています。

木の形になる

タグの中にタグを入れられるので、XMLの中身は上下関係のある入れ子になります。いちばん外側のタグが1つあり、その下に枝が分かれていく。つまり木構造です。

この形が決まっているおかげで、どの言語からでも同じように読み書きできます。

プログラムから読むときの2通り

XMLのファイルは、中を開けばただの文字の並びです。プログラムで使うには、その文字列を読み取って、どこからどこまでが何のタグで、中の値は何か、を取り出す処理が要ります。

DOM と SAX は、この読み取り方の2つのやり方の名前です。どちらもXMLの書き方ではなく、プログラムがXMLを読むときの取り決めを指します。性格が正反対で、試験ではその違いが問われます。

DOMSAX
読み方全部読んで木に組み立ててから扱う先頭から順に読み、その場で処理する
得意自由に行き来できる記憶領域が少なくて済む
苦手大きいと重い通り過ぎたら戻れない

DOMは、読み終わった時点で木がまるごと記憶領域に載っています。そのため、親から子へ、子から親へと何度でもたどれますし、書き換えもできます。そのかわり、ファイルが大きいとそのぶん場所を取ります。

SAXは、読んだそばから捨てていきます。場所を取らないかわりに、通り過ぎたタグはもう手元にありません。

大きいファイルを順に処理していくならSAX、あちこち参照しながら書き換えたいならDOM、という使い分けになります。

DOMは Document Object Model の略で、「文書を、プログラムから触れる部品の集まりとして表したもの」という意味です。AjaxがWebページの一部を書き換えるときに使うDOMも、同じ考え方をHTMLに当てはめたものです。

決まりを守れているか

XMLには、正しさの段階が2つあります。言葉が似ていて取り違えやすいので、並べて押さえてください。

後者で使う「決めた構造」を書いたものが、DTD(文書型定義)や XML Schema です。どんなタグが使えるか、どの順で現れるか、必ず要るのはどれか、といったことを定めます。

XML Schema は、DTDより後に作られたもので、XML自身の文法で書けることと、数値や日付といった型を指定できることが違いです。

何に使われているのか

名前が広く知られているのは、SVG(図形を座標と線で表す画像形式)と SOAP(Webサービスどうしがやり取りする手順)です。どちらもXMLで書かれています。

オフィスソフトの文書ファイルも、中を開くとXMLの集まりになっています。拡張子の末尾に x が付く形式がそれです。

一方、Webのやり取りではJSONに置きかわりました。同じ内容を書くのにタグを2回書く必要があり、XMLのほうが長くなるためです。

XMLが消えたわけではありません。構造をきちんと決めて守らせたい場面では、いまも使われています。JSONには、XML Schemaほど確立した検証の仕組みが無いためです。

試験ではこう出る

科目A(旧・午前)で出ます。いちばん多いのは、XMLの特徴を選ばせる問題です。「タグを利用者が独自に定義できる」が答えになります。

HTMLとの違いを問う形も定番です。

HTMLXML
タグ種類が決まっている自分で決められる
目的人に見せるデータを受け渡す
文法の厳しさゆるい書き方も通る閉じ忘れは誤りになる

次に多いのが、整形式と妥当の違いです。「文法だけ正しい」のが整形式、「決めた構造にも合っている」のが妥当。妥当ならば整形式でもあるという向きまで押さえてください。

応用情報では、DOMとSAXの使い分けや、XML Schema と DTD の違いまで問われます。

関連する用語

JSON
同じくデータを受け渡す書き方。XMLより短く書けるので、Webではこちらが主流になった
HTML
Webページの中身を示す言語。タグの種類が決まっている点がXMLと違う
CSS
見せ方を指定する言語。XMLの見せ方を決めるほうはXSL
木構造
枝が分かれていくデータ構造。XMLは、この形をそのまま文字で書いたもの
文字コード
文字と番号の対応。どの対応表で書いたかを、XMLの先頭で宣言する

ミニクイズ

XMLの特徴として、最も適切なものはどれか。

正解は 3番:タグを利用者が独自に定義でき、データの構造と意味を併せて表現できる

XMLは、どんなタグを使うかを利用者の側で決められます。商品のデータなら商品名や価格といったタグを自分で用意でき、値そのものだけでなく「この値が何であるか」も一緒に運べます。受け取った側は、意味を取り違えずに処理できます。使えるタグが決まっていてWebページを書くのはHTML、見せ方を指定するのはCSS(Cascading Style Sheets。色や大きさ、配置を決める言語)やXSLです。通信手順を階層に分けたものはOSI基本参照モデル(通信の役割を7つの層に分けて整理した物差し)で、データの書き方とは関係がありません。

間違えた用語の復習リストを見る →

この分野をまとめて解く → アルゴリズムとプログラミングのミニテスト(全44問)

最終更新:2026-10-09