Webページを見ていると、<div>や<p>といったタグを見かけますよね。
「タグで文章を囲む言語」というと、多くの人がHTMLを思い浮かべるでしょう。
でも実は、似たような記法を使う言語がもう一つあるんです。それがXMLです。
「HTMLとXML、何が違うの?」「どう使い分ければいいの?」
この記事では、2つのマークアップ言語であるHTMLとXMLについて、初心者の方にもわかりやすく解説していきます。それぞれの特徴と使い分けを理解する知識をお届けしますよ。
マークアップ言語とは?文章に「意味」をつける

まず、マークアップ言語について理解しましょう。
マークアップの意味
「マークアップ(Markup)」は、文章に印をつけることを意味します。
編集者が原稿に赤ペンで「ここは見出し」「ここは太字」と指示を書き込む作業を、デジタルで行うようなイメージですね。
タグで構造を表現
マークアップ言語では、タグを使って文章の構造や意味を示します。
<title>これはタイトルです</title>
このように、<タグ名>と</タグ名>で文字列を囲むことで、「この部分はタイトルだよ」と指定するんです。
HTMLとは?Webページを作る言語
HTML(HyperText Markup Language)は、Webページを作成するための言語です。
HTMLの目的
HTMLは、Webブラウザで表示するためのドキュメントを作成することが目的です。
見出し、段落、リンク、画像など、Webページに必要な要素を表現できます。
HTMLの例
<!DOCTYPE html>
<html>
<head>
<title>私のWebページ</title>
</head>
<body>
<h1>ようこそ</h1>
<p>これは段落です。</p>
<a href="https://example.com">リンク</a>
<img src="image.jpg" alt="画像">
</body>
</html>
使えるタグは決まっていて、<h1>(見出し)、<p>(段落)、<a>(リンク)など、それぞれ明確な役割があります。
HTMLの特徴
1. 表示が目的
ブラウザでどう見えるかが重要です。
2. タグが固定
使えるタグは仕様で決まっています。勝手に新しいタグを作ることはできません。
3. 多少のエラーは許容
閉じタグがなくても、ブラウザが頑張って表示してくれることがあります。
4. 人間が読みやすい
Webページという具体的な用途に特化しているため、直感的に理解しやすいんです。
XMLとは?データを表現する汎用言語
XML(eXtensible Markup Language)は、データを構造化して表現するための汎用的な言語です。
XMLの目的
XMLは、データの保存や交換を目的としています。
「このデータはこういう構造を持っている」という情報を、人間にもコンピュータにも理解できる形で表現するんです。
XMLの例
<?xml version="1.0" encoding="UTF-8"?>
<書籍>
<タイトル>XMLとHTMLの違い</タイトル>
<著者>山田太郎</著者>
<価格 通貨="円">1500</価格>
<出版年>2025</出版年>
</書籍>
このように、自分で好きなタグ名を作れます。
データの構造を自由に設計できるのが、XMLの大きな特徴ですね。
XMLの特徴
1. データ保存・交換が目的
表示よりも、情報の構造を正確に表現することが重要です。
2. タグを自由に定義できる
用途に合わせて、独自のタグを作成できます。
3. 厳格な文法
エラーがあると、処理が中断されます。正確さが求められるんです。
4. 機械処理に適している
プログラムでデータを読み込んで処理するのに向いています。
HTMLとXMLの主な違い

両者の違いを表にまとめてみましょう。
| 項目 | HTML | XML |
|---|---|---|
| 目的 | Webページの表示 | データの記述・交換 |
| タグ | 固定(仕様で決まっている) | 自由に定義できる |
| 厳格さ | 寛容(エラーを許容しがち) | 厳格(エラーで処理停止) |
| 用途 | ブラウザでの表示 | 設定ファイル、データ交換など |
| 対象 | 主に人間 | 主にコンピュータ |
| 拡張子 | .html、.htm | .xml |
記述の違い
HTMLは比較的寛容:
<p>閉じタグがなくても表示される
<br>(brタグは閉じタグ不要)
<IMG SRC="test.jpg">(大文字小文字混在OK)
多少のミスがあっても、ブラウザが補正して表示してくれることがあります。
XMLは厳格:
<book>
<title>タイトル</title> <!-- 必ず閉じタグが必要 -->
<image /> <!-- 空要素は必ず閉じる -->
</book>
<!-- タグの大文字小文字は区別される -->
ルールを守らないと、エラーになって処理が止まります。
それぞれの使用場面
実際にどんな場面で使われるのか見ていきましょう。
HTMLが使われる場面
Webサイト
ほとんどすべてのWebページがHTMLで作られています。
ブログ、ECサイト、企業サイト、どれもHTMLが基本ですね。
メールのHTML形式
画像や装飾を含むメールは、HTMLで記述されています。
ヘルプドキュメント
ソフトウェアのヘルプファイルなどにもHTMLが使われることがあります。
XMLが使われる場面
設定ファイル
Androidアプリの設定や、様々なソフトウェアの設定ファイルにXMLが使われます。
データ交換
異なるシステム間でデータをやり取りする際、XMLフォーマットが使われることがあります。
RSSフィード
ブログの更新情報などを配信するRSSは、XMLベースです。
Office文書の内部形式
Microsoft Officeの新しい形式(.docx、.xlsxなど)は、内部的にXMLを使っています。
Webサービス(SOAP)
一部のWebAPIでは、XMLでデータをやり取りします。
SVG画像
ベクター画像形式のSVGも、XMLで記述されているんですよ。
XHTMLという橋渡し
HTMLとXMLの中間的な存在として、XHTMLがあります。
XHTMLとは
XHTML(eXtensible HyperText Markup Language)は、HTMLをXMLの厳格なルールで書き直したものです。
HTMLの表現力と、XMLの厳密さを両立させようという試みでした。
XHTMLの例
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XHTMLの例</title>
</head>
<body>
<p>すべてのタグを閉じる必要があります。</p>
<br /> <!-- 空要素も閉じる -->
<img src="image.jpg" alt="画像" />
</body>
</html>
すべてのタグを小文字で書き、必ず閉じタグを書くなど、XMLのルールに従います。
XHTMLの現状
一時期は「これからはXHTMLだ!」と注目されましたが、現在ではHTML5が主流になっています。
HTML5は、XHTMLの厳格さを取り入れつつ、より柔軟な設計になっているんです。
XHTMLを新規に採用するケースは減っていますが、既存のシステムでは今も使われています。
XMLの基本構文

XMLの書き方を詳しく見てみましょう。
XML宣言
XMLファイルの先頭には、XML宣言を書きます。
<?xml version="1.0" encoding="UTF-8"?>
バージョンと文字エンコーディングを指定するんです。
ルート要素
XMLには、必ず1つだけルート要素が必要です。
<root>
<!-- すべての要素がこの中に入る -->
</root>
すべての要素は、このルート要素の中に含まれる必要があります。
要素の入れ子
要素は入れ子構造にできます。
<書店>
<書籍>
<タイトル>はじめてのXML</タイトル>
</書籍>
</書店>
階層構造でデータを表現できるんですね。
属性
タグには、属性を付けられます。
<商品 id="001" カテゴリー="本">
<名前>XMLガイド</名前>
</商品>
属性は、要素に関する追加情報を示します。
コメント
HTMLと同じように、コメントを書けます。
<!-- これはコメントです -->
HTMLとXMLの共通点
違いばかり強調しましたが、共通点もあります。
1. タグベースの記法
両方とも、<タグ名>でマークアップする記法を使います。
見た目が似ているので、混乱しやすいんですね。
2. テキストファイル
どちらも、単純なテキストファイルとして保存されます。
メモ帳などのテキストエディタで編集できます。
3. 階層構造
要素を入れ子にして、階層構造を表現できます。
4. 国際標準
W3C(World Wide Web Consortium)という国際標準化団体によって管理されています。
JSONという選択肢
最近では、XMLの代わりにJSONが使われることも増えています。
JSONとは
JSON(JavaScript Object Notation)は、データを表現するための軽量なフォーマットです。
{
"タイトル": "XMLとHTMLの違い",
"著者": "山田太郎",
"価格": 1500,
"通貨": "円"
}
XMLより記述がシンプルで、JavaScriptとの相性が抜群です。
XMLとJSONの使い分け
XMLが向いている場合:
- 複雑な階層構造のデータ
- 属性を使った細かい情報管理
- 既存システムとの互換性が必要な場合
- 厳密なスキーマ定義が必要
JSONが向いている場合:
- Webアプリケーションでのデータ交換
- シンプルなデータ構造
- JavaScriptとの連携
- 軽量さが重要な場合
現在のWeb APIでは、JSONが主流になっていますね。
DTDとXMLスキーマ
XMLには、データの構造を定義する仕組みがあります。
DTD(Document Type Definition)
DTDは、XMLの構造を定義する方法の一つです。
「このXMLファイルは、こういう要素を持つべき」というルールを定義できます。
<!DOCTYPE 書籍 [
<!ELEMENT 書籍 (タイトル, 著者, 価格)>
<!ELEMENT タイトル (#PCDATA)>
<!ELEMENT 著者 (#PCDATA)>
<!ELEMENT 価格 (#PCDATA)>
]>
XMLスキーマ
XMLスキーマ(XSD)は、より高機能な定義方法です。
データ型の指定や、より複雑な制約を定義できます。
これらを使うと、XMLファイルが正しい構造になっているかを検証できるんです。
パースとDOM
XMLやHTMLのデータを、プログラムで扱う方法を紹介します。
パーサー
パーサーは、XMLやHTMLを解析してプログラムで使えるデータ構造に変換するツールです。
多くのプログラミング言語に、標準でパーサーが用意されています。
DOM(Document Object Model)
DOMは、XMLやHTMLをツリー構造として扱うための仕組みです。
書籍
├── タイトル: "XMLガイド"
├── 著者: "山田太郎"
└── 価格: "1500"
このように、階層構造をプログラムで操作できるようになります。
JavaScriptでWebページを動的に変更するときも、DOMを操作しているんですよ。
実用的な選択基準

どちらを使うべきか、判断基準をまとめました。
HTMLを選ぶべき場合
- Webページを作りたい
- ブラウザで表示することが目的
- デザインや見た目が重要
- ユーザーインターフェースを作成
迷ったら、Webに関することならHTMLです。
XMLを選ぶべき場合
- 異なるシステム間でデータを交換したい
- 複雑なデータ構造を表現したい
- 設定ファイルを作成したい
- データの正確性が重要
- 既存のXMLベースシステムと連携する必要がある
データの保存や交換が目的なら、XMLを検討しましょう。
現代的な選択
新規プロジェクトを始める場合:
- Webページ → HTML5
- データ交換 → JSON(軽量で十分な場合)
- データ交換 → XML(複雑な構造や厳密な定義が必要な場合)
時代と共に、使われる技術も変化しています。
まとめ:目的に応じて使い分けよう
HTMLとXMLは、どちらもマークアップ言語ですが、目的が異なります。
この記事のポイント:
- HTMLはWebページ表示が目的、XMLはデータ記述が目的
- HTMLはタグが固定、XMLは自由に定義できる
- HTMLは寛容、XMLは厳格
- XHTMLはHTMLとXMLの橋渡し的存在
- HTMLはブラウザで表示、XMLは設定ファイルやデータ交換に使用
- 現代ではJSONもデータ交換の選択肢として人気
- DOMを使ってプログラムから操作できる
- 目的に応じて適切な技術を選択することが重要
「タグを使う言語」という点では似ていますが、設計思想が全く異なるんです。
Webページを作るならHTML、データを構造化するならXMLまたはJSON、と覚えておけば大丈夫ですよ。
それぞれの特徴を理解して、適切な技術を選択してくださいね。


コメント