Extensible Markup Language
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 が勧告され、2004年2月に XML 1.1 が勧告された(#バージョン参照)。
XML名前空間 (Namespaces in XML) は、一つXML文書内で、異なる複数のボキャブラリ(スキーマ)に由来する要素と属性を、名前の衝突を発生させることなく、含めることができるようにするための仕様である。World Wide Web Consortium (W3C) から、1999年1月14日に Namespaces in XML 1.0 が勧告された。XML文書に異なる複数のボキャブラリに由来する要素と属性を含める場合、ボキャブラリのそれぞれに名前空間をわりあてることにより、要素名の衝突と属性名の衝突の問題を、解決することができる。
一つの名前空間において定義された要素の名前は、一意でなければならない。
顧客への参照と注文された商品への参照を含む簡単なXML文書の例を考える。顧客要素と商品要素は、ともに「識別番号」という名前の子要素をもつことがあるだろう。識別番号要素への参照は、顧客要素の子要素の識別番号要素も商品要素の子要素の識別番号要素も同じ要素名をもつので、あいまいである。しかし2つのボキャブラリを区別する2つの名前空間のもとで識別番号要素を使う場合、顧客要素の子要素の識別番号要素と商品要素の子要素の識別番号要素は意味的に明確に異なる2種類の要素となる。
XML Path Language (XPath) は、W3Cが策定した、XML文書中のデータを取得するための、DOMに似たノードの集まりからなる木構造をデータモデルとするパス式言語である。XSLTおよびXQueryの技術はXPathを使って実現されている。XPathの実装はまた、便利な関数ライブラリを含んでおり使うことができる。
Extensible Markup Language(エクステンシブル マークアップ ランゲージ)は、基本的な構文規則を共通とすることで、任意の用途向けの言語に拡張することを容易としたことが特徴のマークアップ言語の総称である。一般的にXML(エックスエムエル)と略称で呼ばれる。JISによる訳語は「拡張可能なマーク付け言語」と定義している。XML文書のフォーマットを予め統一することで、異種プラットフォーム間での情報交換も可能となる。
SGMLからの移行を目的として開発された。文法はSGMLの構文解析器と互換性を保つようにSGMLのサブセットに定められシンプルになり、機能はSGMLに無いものが追加されている。
XML の仕様は、World Wide Web Consortium (W3C) により策定・勧告されている。1998年2月に XML 1.0 が勧告された。2010年4月現在、XML 1.0 と XML 1.1 の2つのバージョンが勧告されている(#バージョン)。
ちなみに、「eXtensible Markup Language の略である」と書かれることがあるが、これは間違いであり、XはExの発音を表している。
ISO/IEC 19776-1:2005 Information technology -- Computer graphics, image processing and environmental data representation -- Extensible 3D (X3D) encodings -- Part 1: Extensible Markup Language (XML) encoding
ISO/IEC 22537:2006 Information technology -- ECMAScript for XML (E4X) specification
ISO 22643:2003 Space data and information transfer systems -- Data entity dictionary specification language (DEDSL) -- XML/DTD Syntax
ISO/IEC 23001-1:2006 Information technology -- MPEG systems technologies -- Part 1: Binary MPEG format for XML
ISO 24531:2007 Intelligent transport systems -- System architecture, taxonomy and terminology -- Using XML in ITS standards, data registries and data dictionaries
XML文書 (およびSGML文書) においてCDATAセクションとは、文字列データのみで構成されておりマークアップされたデータは含まれていないと、XMLプロセサが解釈するようマークされた、要素の内容を構成する文字列データの一部である。CDATAセクションは、文字列データを表現するための単なる代替構文である。 CDATAセクションとして宣言された文字列データと、"<" と "&" を "&lt;" と "&amp;" で表現する通常の構文で記述した文字列データとの間に、意味的な違いはない。
XML仕様における設計上のいくつかの大きな決定は、1996年の7月から11月までの間の12週間の真剣な作業のなかで行われた。 この12週間の作業の後 (1996年11月) に、XMLの最初のワーキングドラフトが公表された。 その後も1997年をとおして設計作業は続けられ、XML 1.0 は、1998年2月10日にW3Cの勧告となった。
XML 1.0 は、ワーキンググループが目標としていた次の目標を達成したと、評価する人々が多い。
インターネット環境での使いやすさ
汎用的な用途での使いやすさ
SGMLとの互換性
XML文書を扱うソフトウェアの開発を容易にする機能
オプショナルな機能の最小化
XML文書の読みやすさ
形式に即していること (formality)
簡潔さ
XML文書の作成・編集の容易さ
技術者にとってはXMLはSGMLよりも習得しやすい技術であり、また処理系の開発が容易になったことで低い費用でXML技術を利用できるようになった。 現在ではXMLは広く普及している技術である。
XMLの前身であるSGMLと同様にXMLでも、いくつかの冗長な構文要素があり、要素記述子の繰り返しを仕様に含んでいる。 文書を短くすることは、XMLワーキンググループでは、XMLの構造において本質的な問題とは見なされなかった。