XMLタグとは?初心者にもわかる基本と使い方のコツ

Web

「プロジェクトでXMLファイルを見ることになったけど、タグって何?」
「HTMLは知ってるけど、XMLのタグはどう違うの?」
「なんで<name>りんご</name>みたいに書くの?」

データの保存ややり取りをする場面で、よく耳にする「XML(エックスエムエル)」という言葉。その中で必ず登場するのが「タグ」です。

でも、XMLに触れるのが初めてだと、タグの意味や役割がよくわからないですよね。

この記事では、XMLタグの意味や役割、基本的な書き方をやさしく解説します。XMLに触れるのが初めてでも理解できる内容になっているので、ぜひ最後まで読んでください。

スポンサーリンク

XMLタグとは?データを整理する魔法の記号

タグとは「データをくくる目印」

XMLタグは、データの構造を示すための「目印」です。具体的には、データの始まりと終わりを示す記号のことを指します。

基本的な書き方:

<name>りんご</name>

この例では:

  • <name>開始タグ(オープニングタグ)
  • </name>終了タグ(クロージングタグ)

このタグで囲まれた「りんご」という文字列が、「name」というデータ項目であることを表しています。

HTMLタグとの違いは?

XMLとHTMLのタグは見た目が似ていますが、重要な違いがあります。

特徴HTMLXML
タグの種類決められたタグのみ自由に作れる
閉じタグ省略可能な場合あり必須
大文字・小文字区別しない厳密に区別
目的ウェブページの表示データの構造化

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>

属性の書き方ルール

  1. 属性値は必ずダブルクォーテーション(”)で囲む
  2. 属性名と値の間は等号(=)で繋ぐ
  3. スペースで複数の属性を区切る

正しい例:

<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では、一部の文字をそのまま使うことができません。

文字エスケープ後使用例
<&lt;<message>価格は100円 &lt; 税込110円</message>
>&gt;<note>A &gt; B の関係</note>
&&amp;<company>A &amp; B商事</company>
"&quot;<quote>彼は&quot;こんにちは&quot;と言った</quote>
'&apos;<text>don&apos;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タグを効率的に書くコツ

一貫した命名規則を使う

推奨される命名パターン:

  1. キャメルケース<firstName> <lastName>
  2. アンダースコア区切り<first_name> <last_name>
  3. ハイフン区切り<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タグとは、データの意味や構造を示すための目印です。これがあることで、コンピュータ同士はもちろん、人が見ても何のデータかすぐに理解できます。

今回学んだ重要ポイント

  1. XMLタグの基本構造: <開始タグ>データ</終了タグ>
  2. 3つのタグ種類: 基本形、空要素、属性付き
  3. XMLの厳格なルール: 終了タグ必須、大文字小文字区別など
  4. 実用的な使い方: 階層構造、属性の活用

コメント

タイトルとURLをコピーしました