XML(Extensible Markup Language)は、要素や属性でデータの構造を表すマークアップ言語です。用途に応じて語彙を定義でき、文書、設定、システム間のデータ交換などに使われます。
小さな例で構造を読む
<book id="B01">
<title>ネットワーク入門</title>
<price>1200</price>
</book>
bookが全体を包む要素、idは属性です。titleとpriceは子要素で、要素間に文字データを持ちます。priceという名前でも、数値の範囲や通貨の意味がXMLだけで自動的に決まるわけではありません。受け手と構造や意味の合意が必要です。
整形式と妥当性の違い
| 区分 | 確認すること |
|---|---|
| 整形式 | 開始・終了タグの対応、適切な入れ子、一つの文書要素、属性値の引用符など |
| 妥当性 | DTD等で定めた要素・属性の規則に従うこと。XML Schemaでの検証も利用される |
| 名前空間 | 異なる語彙で同じ要素名を使う場合などの識別 |
XMLは大文字と小文字を区別します。タグは交差させず、特別な文字は適切にエスケープします。単にタグが付いているだけでは正しいXMLとは限りません。
HTML・JSONとの違い
HTMLはWeb文書の構造や意味を表す語彙を持ち、表示の見た目は主にCSSが担います。XMLは用途ごとの語彙を定義する基盤です。JSONはオブジェクトや配列等で値を表す形式で、XMLの別名ではありません。
形式の選択では、文書の混在内容、名前空間、検証、既存システムとの互換性などを比較します。XMLなら必ず相互運用できる、JSONなら常に小さく高速という断定は避けましょう。
利用時の注意
SOAPやRSSはXMLを利用する例です。外部から受け取るXMLは、サイズや構造を検証し、不要な外部実体の解決などを制限する設定も必要です。データの形式と、安全に処理する仕組みを分けて考えます。
確認問題:タグ名をpriceにすれば、XMLだけで正の整数だと保証される?
いいえ。値の型や制約は、スキーマやアプリケーション側の検証等で定めます。
関連する記事
通信の基礎をnoteで復習する
データの表現形式と、そのデータを運ぶ通信プロトコルを区別するために役立ちます。
この教材は通信階層の復習用です。本記事の個別仕様を詳説する教材ではありません。
コメント