「プロジェクトでXMLファイルを見ることになったけど、タグって何?」
「HTMLは知ってるけど、XMLのタグはどう違うの?」
「なんで<name>りんご</name>
みたいに書くの?」
データの保存ややり取りをする場面で、よく耳にする「XML(エックスエムエル)」という言葉。その中で必ず登場するのが「タグ」です。
でも、XMLに触れるのが初めてだと、タグの意味や役割がよくわからないですよね。
この記事では、XMLタグの意味や役割、基本的な書き方をやさしく解説します。XMLに触れるのが初めてでも理解できる内容になっているので、ぜひ最後まで読んでください。
XMLタグとは?データを整理する魔法の記号

タグとは「データをくくる目印」
XMLタグは、データの構造を示すための「目印」です。具体的には、データの始まりと終わりを示す記号のことを指します。
基本的な書き方:
<name>りんご</name>
この例では:
<name>
が開始タグ(オープニングタグ)</name>
が終了タグ(クロージングタグ)
このタグで囲まれた「りんご」という文字列が、「name」というデータ項目であることを表しています。
HTMLタグとの違いは?
XMLとHTMLのタグは見た目が似ていますが、重要な違いがあります。
特徴 | HTML | XML |
---|---|---|
タグの種類 | 決められたタグのみ | 自由に作れる |
閉じタグ | 省略可能な場合あり | 必須 |
大文字・小文字 | 区別しない | 厳密に区別 |
目的 | ウェブページの表示 | データの構造化 |
HTMLの例:
<h1>見出し</h1>
<br> <!-- 閉じタグなし -->
<IMG src="image.jpg"> <!-- 大文字小文字混在OK -->
XMLの例:
<title>見出し</title>
<break /> <!-- 必ず閉じる -->
<image src="image.jpg"></image> <!-- 大文字小文字厳密 -->
なぜタグが必要なの?
タグがない場合を想像してみてください:
田中太郎
30
エンジニア
東京都
この情報だけでは、どれが名前で、どれが年齢なのかわかりません。
しかし、XMLタグを使えば:
<person>
<name>田中太郎</name>
<age>30</age>
<job>エンジニア</job>
<location>東京都</location>
</person>
一目で情報の意味がわかりますね!
XMLタグの種類を完全マスター

基本形:開始タグと終了タグ
もっとも基本的な形です。データを開始タグと終了タグで囲みます。
<price>1000</price>
<description>美味しいりんごです</description>
<date>2024-07-05</date>
終了タグの見分け方
終了タグには必ず**スラッシュ(/)**が付きます:
- 開始タグ:
<price>
- 終了タグ:
</price>
空要素タグ(セルフクローズタグ)
データを持たず、その要素だけを示すときに使います。
<linebreak />
<separator />
<marker />
HTMLとの比較:
- HTML:
<br>
<img>
<hr>
- XML:
<br />
<img />
<hr />
XMLでは必ずスラッシュ(/)を入れて自己完結させる必要があります。
属性(アトリビュート)を持つタグ
タグには属性を付けて追加情報を持たせることができます。
<product id="123" category="fruit" inStock="true">りんご</product>
<image src="apple.jpg" width="200" height="150" />
<link url="https://example.com" target="blank">サイトへ</link>
属性の書き方ルール
- 属性値は必ずダブルクォーテーション(”)で囲む
- 属性名と値の間は等号(=)で繋ぐ
- スペースで複数の属性を区切る
正しい例:
<item type="food" price="100">りんご</item>
間違った例:
<item type=food price='100'>りんご</item> <!-- クォーテーション不備 -->
<item type="food"price="100">りんご</item> <!-- スペースなし -->
XMLタグを使う意味とメリット
データの意味をはっきりさせる
ただの数字「100」では何を表しているかわかりませんが、タグを使えば意味が明確になります。
<!-- 価格として明確 -->
<price>100</price>
<!-- 数量として明確 -->
<quantity>100</quantity>
<!-- 重さとして明確 -->
<weight unit="gram">100</weight>
データを階層で整理できる
XMLタグは入れ子(ネスト)構造にできるため、複雑な関係性も表現できます。
<shop name="フルーツマート">
<products>
<product id="001">
<name>りんご</name>
<price currency="JPY">150</price>
<stock>50</stock>
<details>
<origin>青森県</origin>
<variety>ふじ</variety>
<harvest>2024-10</harvest>
</details>
</product>
<product id="002">
<name>みかん</name>
<price currency="JPY">100</price>
<stock>30</stock>
<details>
<origin>愛媛県</origin>
<variety>温州みかん</variety>
<harvest>2024-11</harvest>
</details>
</product>
</products>
</shop>
この構造により、商品の基本情報と詳細情報を整理して管理できます。
検索と処理が簡単
タグがあることで、特定のデータを簡単に検索・抽出できます。
<!-- 価格だけを取り出したい場合 -->
<!-- <price>タグを探せばOK -->
<!-- 青森県産の商品を探したい場合 -->
<!-- <origin>青森県</origin>を探せばOK -->
XMLタグを書くときの重要な注意点

XMLはHTMLよりもずっとルールに厳格です。以下のルールを守らないとエラーになります。
必ず終了タグを書く
正しい例:
<name>田中太郎</name>
<price>1000</price>
間違った例:
<name>田中太郎 <!-- 終了タグなし -->
<price>1000 <!-- 終了タグなし -->
入れ子は正しく
タグの順序を間違えると「整形式でない」というエラーになります。
間違った例:
<person><name>田中太郎</person></name> <!-- 順序が交差 -->
正しい例:
<person><name>田中太郎</name></person> <!-- 内側から順番に閉じる -->
属性値は必ずダブルクォーテーション
正しい例:
<item type="fruit" price="100">りんご</item>
間違った例:
<item type=fruit price='100'>りんご</item> <!-- クォーテーションなし・シングルクォート -->
<item type="fruit price="100">りんご</item> <!-- 閉じクォーテーション忘れ -->
大文字・小文字を厳密に区別
XMLでは<Name>
と<name>
は別のタグとして扱われます。
間違った例:
<Name>田中太郎</name> <!-- 開始タグと終了タグで大文字小文字が違う -->
正しい例:
<name>田中太郎</name> <!-- 完全に一致 -->
<Name>田中太郎</Name> <!-- 完全に一致 -->
特殊文字はエスケープする
XMLでは、一部の文字をそのまま使うことができません。
文字 | エスケープ後 | 使用例 |
---|---|---|
< | < | <message>価格は100円 < 税込110円</message> |
> | > | <note>A > B の関係</note> |
& | & | <company>A & B商事</company> |
" | " | <quote>彼は"こんにちは"と言った</quote> |
' | ' | <text>don't worry</text> |
実際の使用例で理解を深めよう
書籍管理システムの例
<?xml version="1.0" encoding="UTF-8"?>
<library>
<book isbn="978-4-123456-78-9" status="available">
<title>XMLプログラミング入門</title>
<author>
<firstName>太郎</firstName>
<lastName>田中</lastName>
</author>
<publisher>技術出版社</publisher>
<publishDate>2024-03-15</publishDate>
<pages>300</pages>
<category>プログラミング</category>
<tags>
<tag>XML</tag>
<tag>初心者向け</tag>
<tag>技術書</tag>
</tags>
</book>
<book isbn="978-4-987654-32-1" status="borrowed">
<title>Web開発の基礎</title>
<author>
<firstName>花子</firstName>
<lastName>佐藤</lastName>
</author>
<publisher>Web技術社</publisher>
<publishDate>2024-01-20</publishDate>
<pages>250</pages>
<category>Web開発</category>
<borrower>
<name>山田一郎</name>
<borrowDate>2024-07-01</borrowDate>
<returnDate>2024-07-15</returnDate>
</borrower>
</book>
</library>
顧客管理システムの例
<?xml version="1.0" encoding="UTF-8"?>
<customers>
<customer id="C001" membershipLevel="gold" joinDate="2023-01-15">
<personalInfo>
<name>
<firstName>太郎</firstName>
<lastName>田中</lastName>
<fullName>田中太郎</fullName>
</name>
<contact>
<email primary="true">taro@example.com</email>
<phone type="mobile">090-1234-5678</phone>
<phone type="home">03-1234-5678</phone>
</contact>
<address>
<postalCode>100-0001</postalCode>
<prefecture>東京都</prefecture>
<city>千代田区</city>
<street>丸の内1-1-1</street>
<building>東京ビル10F</building>
</address>
</personalInfo>
<preferences>
<newsletter>true</newsletter>
<promotions>false</promotions>
<language>ja</language>
</preferences>
<purchaseHistory>
<order id="O001" date="2024-06-15" total="5400">
<item>
<productId>P123</productId>
<name>XMLガイドブック</name>
<quantity>2</quantity>
<price>2700</price>
</item>
</order>
</purchaseHistory>
</customer>
</customers>
よくある質問と回答

XMLタグに日本語は使える?
はい、UTF-8エンコーディングを使えば日本語のタグ名も使用できます。
<?xml version="1.0" encoding="UTF-8"?>
<商品リスト>
<商品 ID="001">
<名前>りんご</名前>
<価格>150</価格>
</商品>
</商品リスト>
ただし、システム間でのデータ交換では英語のタグ名が推奨されることが多いです。
タグ名に使えない文字は?
以下の文字や記号は使用できません:
- スペース:
<product name>
❌ - 記号:
<price$>
❌ - 数字で始まる:
<123item>
❌
使用可能な文字:
- 英数字:
<product123>
- アンダースコア:
<product_name>
- ハイフン:
<product-name>
空のタグはどう書く?
2つの方法があります:
<!-- 方法1: 開始タグと終了タグ -->
<comment></comment>
<!-- 方法2: 自己完結タグ -->
<comment />
どちらも同じ意味ですが、空の場合は自己完結タグを使うのが一般的です。
XMLタグにコメントは書ける?
はい、HTMLと同じようにコメントを書けます:
<!-- これは商品リストです -->
<products>
<!-- りんごの情報 -->
<product id="001">
<name>りんご</name> <!-- 商品名 -->
<price>150</price> <!-- 税込価格 -->
</product>
</products>
XMLタグを効率的に書くコツ
一貫した命名規則を使う
推奨される命名パターン:
- キャメルケース:
<firstName>
<lastName>
- アンダースコア区切り:
<first_name>
<last_name>
- ハイフン区切り:
<first-name>
<last-name>
プロジェクト内で統一することが重要です。
適切なインデント(字下げ)を使う
<products>
<product>
<name>りんご</name>
<details>
<origin>青森県</origin>
<variety>ふじ</variety>
</details>
</product>
</products>
階層がわかりやすくなり、エラーも見つけやすくなります。
属性とテキストの使い分け
属性に適している情報:
- ID、識別子
- メタデータ(作成日、更新日など)
- フラグ(true/false)
テキストに適している情報:
- 表示用のデータ
- 長い文章
- 複雑な構造のデータ
<!-- 良い例 -->
<article id="123" publishDate="2024-07-05" status="published">
<title>XMLの基礎</title>
<content>XMLは構造化されたデータを...</content>
<author>
<name>田中太郎</name>
<email>taro@example.com</email>
</author>
</article>
まとめ:XMLタグをマスターして次のステップへ
XMLタグとは、データの意味や構造を示すための目印です。これがあることで、コンピュータ同士はもちろん、人が見ても何のデータかすぐに理解できます。
今回学んだ重要ポイント
- XMLタグの基本構造:
<開始タグ>データ</終了タグ>
- 3つのタグ種類: 基本形、空要素、属性付き
- XMLの厳格なルール: 終了タグ必須、大文字小文字区別など
- 実用的な使い方: 階層構造、属性の活用
コメント