概要
基礎的概念と利用目的
XMLは、個別の目的に応じたマークアップ言語群を創るために汎用的に使うことができる仕様である。
マークアップ言語とは、コンピュータ言語の一種で、文章の論理的な構造(段落など)や見栄え(フォントサイズなど)に関する指定を、文章とともにテキストファイルに記述するための言語である。
XMLは、拡張可能な言語の一つに分類されるが、その理由は、XMLを使うことで、使用者は自分たち自身で複数のタグを定義することができるからである。
XMLの文脈におけるタグとは、文書の断片に意味を付加するための印である。XMLの最も重要な目的は、異なる情報システムの間で、特にインターネットを介して、構造化された文書や構造化されたデータの共有を、容易にすることである
。
XMLを使うと、文書を構造化して記述することもできるし、コンピュータのデータをシリアライズ|直列化 (シリアライズ) することもできる。
データを直列化する用途でXMLを使う際には、XMLは、JavaScript Object Notation (JSON) やYAMLなどの、プレーンテキスト|テキストを基にした他の直列化言語と比較衡量することができる
[JavaScript Object Notation (JSON) とYAMLは、XMLと比べて、他のプレーンテキスト|テキストを基にした直列化言語との中でも、一般に、軽量であり、冗長性の少ないという、特徴をもつと言及されることが多い。]
この項目の#XMLに対する支持と批判の節を参照。。
XMLを基盤とするマークアップ言語とスキーマ言語
XMLで文書の論理的構造を規定する制約を追加することによって、XMLを適用したマークアップ言語を実装することができる。
XMLを適用したマークアップ言語は非常に多く存在している (#XMLの応用の節を参照) 。
例えば、Extensible HyperText Markup Language (XHTML)
[Extensible HyperText Markup Language (XHTML) は、マークアップ言語 HyperText Markup Language (HTML) を簡素化しその一貫性を改良しようという試みである。なお、HTMLは、Standard Generalized Markup Language (SGML) に基づいたマークアップ言語である。] 、DocBook、RSS、Mathematical Markup Language (MathML) 、ebXML、Scalable Vector Graphics (SVG) 、MusicXML などがある。
さらにXMLを、このような適用マークアップ言語のための仕様記述言語すなわちスキーマ言語として、使うことができる。
XMLで記述するスキーマ言語としては、RELAX NG 、World Wide Web Consortium|W3C XML Schema などがある。
オープンな仕様
XMLは、同じく汎用的に使うことができるマークアップ言語である Standard Generalized Markup Language (SGML) の、簡素化されたサブセットとして、人間にとっても比較的判読しやすいように、設計された (#歴史を参照) 。
XMLの仕様は、XMLワーキンググループなどにより設計が行われ、World Wide Web Consortium (W3C) により勧告 (策定) されている。
XMLは無償で使うことができるオープン標準の技術である。
XML仕様のW3C勧告ではXMLの文法とXMLプロセサ (XMLパーサ、XML文書の構文解析器) のための要件を定めている。
1998年2月に XML 1.0 が勧告された。
2007年現在、W3C勧告の最新バージョンは XML 1.1 である。
正当性水準について
XML文書の正当性の水準には、整形式XML文書と妥当なXML文書の、2つの水準がある (#整形式XML文書と妥当なXML文書を参照) 。
XML文書のマークアップ規則に従って記述されていることだけが問題とされる文脈で、スキーマ言語を使わずに、XML文書のマークアップ規則に従って記述された文書を、「整形式XML文書」 (well-formed XML document) という (#XMLの構文と整形式XML文書を参照) 。
さらに、XML文書をより厳密に構造化した文書やデータとして扱いたい場合は、XML文書の構造をスキーマ言語によって定義することができ、XMLプロセサでそのXML文書(XMLインスタンス)に対してその文書構造に従っていることを検証する(妥当性検証を行う)というように、XML技術を使うこともできる (#XML文書の論理的構造と妥当なXML文書を参照) 。
XML文書に対して妥当性検証を行うことにより、従来アプリケーションソフトウェアで行ってきた、XML文書の構造の検査や、XML文書に含まれるデータに対するデータ型のチェックや値の範囲のチェックが、可能となる。
スキーマ言語としては Document Type Definition (DTD、文書型定義) 、World Wide Web Consortium|W3C XML Schema、RELAX NG (文書スキーマ定義言語: DSDL)などがある。
XML文書の構造がスキーマ言語によって定義され、XML文書の妥当性を検証するソフトウェアによって妥当性が検証されたXML文書のことを「妥当なXML文書」 (valid XML document) という。
整形式XML文書は、妥当なXML文書である場合と、妥当なXML文書ではない場合とがある。
スキーマ言語を採用して妥当性検証を行う方法でXMLを使うこともできるし、スキーマ言語を採用せず妥当性検証を行わないで手軽にXMLを使うこともできる。
幅広い人間言語のサポート
XML勧告では、XMLプロセサがサポートすべき文字符号化方式(文字コード)としてUTF-8とUTF-16(Unicode)を定めているため、英語以外の言語も扱いやすくなっている (#多言語環境で使うを参照) 。また、UTF-8とUTF-16以外の文字コード(UCS-4、EUC-JP、Shift_JIS、EBCDICなど)を用いることも可能である
[XMLプロセサを利用する際には、XML文書で用いている文字コードをサポートしたものを選択することになる。]。
補完技術
XMLだけでは最低限の書式しか決められていないため、XMLの力を引き出す各種の関連技術が別途標準化されている (#XMLの拡張および#XML文書をプログラムで処理する、#XML文書を視覚的に表示する、#XMLインフォメーションセットを参照) 。
現在も多くの関連技術の標準化作業が行われている。
例えば、プログラム (コンピュータ)|プログラムからXML文書を処理する方法として、Document Object Model (DOM) や Simple API for XML (SAX) などのアプリケーションプログラミングインタフェース (API) が標準化されている
[他の方法でXML文書を処理することも可能である]。
また、XML文書のスタイルを指定する技術(スタイルシート)として Extensible Stylesheet Language (XSL) や Cascading Style Sheets (CSS) などがある。
XMLの普及とXMLへの批評
XMLは現在、広く普及している技術であるが、その技術的な有用性などについて、肯定的に評価する人々が多い一方で、批判的に評価する人々も多い (#XMLに対する支持と批判を参照) 。