0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【セキュリティ】XML(Extensible Markup Language)とは?

0
Last updated at Posted at 2025-11-29

はじめに

データの世界では「どう見せるかより、どう伝えるか」が重要だ。
XML はそのために生まれた “意味ごとデータを包装する” マークアップ言語 である。

HTML が “画面に表示される文章を装飾する言語” だとすれば、
XML は “データの構造や意味を正確に表現する言語” と言える。


1. XML はどんなもの?

XML は次のような特徴を持つ:

  • タグ()を自由に定義できる
  • 階層構造(ツリー構造)でデータを整理できる
  • 人間にも機械にも読みやすい
  • 拡張可能(Extensible)で用途が広い

たとえば、以下はごく普通の XML 文書だ:

<?xml version="1.0" encoding="UTF-8"?>
<user id="1">
  <name>Anna</name>
  <age>21</age>
  <languages>
    <language>Japanese</language>
    <language>Chinese</language>
  </languages>
</user>

読むだけで意味がわかる。
タグが “データの意味” を担保しているからだ。


2. XML を構成する要素

XML は以下のパーツでできている:

要素(Element)

タグで囲まれた部分のこと。
例:<name>Anna</name>

属性(Attribute)

要素に追加情報を付けるためのラベル。
例:<user id="1">

テキスト(Character Data)

要素の中の実データ。
例:Anna

宣言(XML Declaration)

XML 文書のメタ情報。
例:<?xml version="1.0" encoding="UTF-8"?>


3. XML はどこで使われている?

「まだ XML なんて使うの?」と思う人もいるが、実は超現役だ。

  • Android 開発
    Manifest、レイアウト、権限定義など、XML だらけ。

  • 業務システムのデータ交換
    銀行・保険・官公庁など「堅牢さ重視」の領域で強い。

  • SOAP / Web Services
    レガシーな API だが、現在も多くの企業で使われている。

  • Office ファイル(docx / xlsx)
    内部は全部 XML の集合体。

  • 設定ファイル
    Maven の pom.xml なども XML。

XML は「堅くて信頼度高い場面」で好まれる傾向がある。


4. JSON と何が違うの?

近年は JSON が主流だが、XML もまだ健在。

観点 XML JSON
構造 タグで表現 キーと値
規模 従来の大規模システム向け Web / モバイル向け
表現力 高い(属性・DTD・Schema など) シンプル
バリデーション 強力(XSD, DTD) JSON Schema
人間の読みやすさ 賛否両論 比較的読みやすい

XML は「厳格な構造が必要な大規模・ミッションクリティカルな領域」に強い。


5. DTD や XML Schema とは?

XML には「文法チェック機能」がある。

DTD(Document Type Definition)

XML の構造ルールを定義する文書。
例:

<!DOCTYPE user [
  <!ELEMENT user (name, age)>
  <!ELEMENT name (#PCDATA)>
  <!ELEMENT age (#PCDATA)>
]>

XSD(XML Schema Definition)

DTD より強力で、型チェックもできる。


6. XML が持つ“闇の一面” —— XXE 脆弱性

便利な機能は武器にもなる。
XML の外部参照機能を悪用した攻撃が XXE(XML 外部実体攻撃) だ。

例:

<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<root>&xxe;</root>

パーサがこれを展開してしまうと、
サーバ上のファイル内容が攻撃者に漏れてしまう。


7. XML のメリットまとめ

  • 拡張し放題
  • 構造が厳格で機械に優しい
  • バリデーションが強力
  • 長期運用システムに向く
  • 文書型アプリケーションに強い(Office など)

8. XML のデメリット

  • JSON より重い
  • 記述が長くなる
  • パーサ設定を誤ると XXE などの脆弱性
  • 初見で少し堅苦しい

9. まとめ:XML は“意味を保ったままデータを運ぶ”ための言語

XML は、データの意味・構造・整合性を保ったまま交換するための強力な仕組み。
JSON が軽量で柔らかいなら、XML は堅牢で厳格な職人。

現代でも Android、企業システム、設定ファイルなど、いたるところで動いている。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?