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を読むときの取り決めを指します。性格が正反対で、試験ではその違いが問われます。
| DOM | SAX | |
|---|---|---|
| 読み方 | 全部読んで木に組み立ててから扱う | 先頭から順に読み、その場で処理する |
| 得意 | 自由に行き来できる | 記憶領域が少なくて済む |
| 苦手 | 大きいと重い | 通り過ぎたら戻れない |
DOMは、読み終わった時点で木がまるごと記憶領域に載っています。そのため、親から子へ、子から親へと何度でもたどれますし、書き換えもできます。そのかわり、ファイルが大きいとそのぶん場所を取ります。
SAXは、読んだそばから捨てていきます。場所を取らないかわりに、通り過ぎたタグはもう手元にありません。
大きいファイルを順に処理していくならSAX、あちこち参照しながら書き換えたいならDOM、という使い分けになります。
DOMは Document Object Model の略で、「文書を、プログラムから触れる部品の集まりとして表したもの」という意味です。AjaxがWebページの一部を書き換えるときに使うDOMも、同じ考え方をHTMLに当てはめたものです。
決まりを守れているか
XMLには、正しさの段階が2つあります。言葉が似ていて取り違えやすいので、並べて押さえてください。
- 整形式(well-formed) … XMLの文法そのものを守っている。タグが正しく閉じている、入れ子が交差していない、など
- 妥当(valid) … 整形式であるうえに、あらかじめ決めた構造にも合っている
後者で使う「決めた構造」を書いたものが、DTD(文書型定義)や XML Schema です。どんなタグが使えるか、どの順で現れるか、必ず要るのはどれか、といったことを定めます。
XML Schema は、DTDより後に作られたもので、XML自身の文法で書けることと、数値や日付といった型を指定できることが違いです。
何に使われているのか
名前が広く知られているのは、SVG(図形を座標と線で表す画像形式)と SOAP(Webサービスどうしがやり取りする手順)です。どちらもXMLで書かれています。
オフィスソフトの文書ファイルも、中を開くとXMLの集まりになっています。拡張子の末尾に x が付く形式がそれです。
一方、Webのやり取りではJSONに置きかわりました。同じ内容を書くのにタグを2回書く必要があり、XMLのほうが長くなるためです。
XMLが消えたわけではありません。構造をきちんと決めて守らせたい場面では、いまも使われています。JSONには、XML Schemaほど確立した検証の仕組みが無いためです。
試験ではこう出る
科目A(旧・午前)で出ます。いちばん多いのは、XMLの特徴を選ばせる問題です。「タグを利用者が独自に定義できる」が答えになります。
HTMLとの違いを問う形も定番です。
| HTML | XML | |
|---|---|---|
| タグ | 種類が決まっている | 自分で決められる |
| 目的 | 人に見せる | データを受け渡す |
| 文法の厳しさ | ゆるい書き方も通る | 閉じ忘れは誤りになる |
次に多いのが、整形式と妥当の違いです。「文法だけ正しい」のが整形式、「決めた構造にも合っている」のが妥当。妥当ならば整形式でもあるという向きまで押さえてください。
応用情報では、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