Extensible Markup Language
ルート要素とは、XML文書の要素の階層構造において最上位の要素のことをいう。最上位の要素は一つでなければならない。最上位の要素が複数ある文書は、整形式XML文書ではない。 整形式XML文書が一つのルート要素をもたなければならないという条件が意味することは、整形式XML文書のテキストは、ルート要素の開始タグと対応する終了タグの間に、収められなければならないということである。ルート要素の開始タグと終了タグの間に収められたテキストは、任意の数の要素や文字列データを含むことができる。
ルート要素の前に、必要に応じて、XML宣言 (XML declaration) をおくことができる。このXML宣言は、XMLのどのバージョンが使われているか (現時点ではバージョン1.0であることが多い) などを示す。XML宣言では、XMLのバージョンの他に、文字符号化方式 (文字コード) の指定や、他のXML文書との依存関係についての指定を、行うこともできる。
XML文書の文字符号化方式がUTF-8かUTF-16の場合は、XML宣言をおいてもよいし、XML宣言をおかなくてもよい。
XML文書の文字符号化方式がUTF-8でもUTF-16でもない場合は、XML宣言をおいて文字符号化方式を明示する必要がある。
何らかのスキーマに準拠したXML文書は、整形式であるということに加えて、妥当 (valid) であるということが成り立つ。
XMLのスキーマは、XMLの文書型 (文書の種類、文書の論理的構造) を記述したものである。 多くの場合スキーマは、その文書の構造と内容に関する制約という形で表現される。XMLのスキーマは、XML仕様で規定されている、整形式XML文書としての基本的な制約に加え、それ以上の制約をXML文書に課すことができる。XMLのスキーマ言語は、標準規格のものもプロプライエタリなものも含めて、こうしたスキーマを表現するという目的のもと、数多く存在している。いくつかのスキーマ言語では、スキーマ自身をXML文書として記述する。
スキーマ言語の記述能力はスキーマ言語ごとにさまざまである。例えばスキーマ言語の一つである Document Type Definition (DTD) では、XML文書がとるべき構造の主な規則として、そのDTDに準拠したXML文書で使うことができる要素の名前、要素の内容モデル、要素で指定できる属性の名前、属性の値のデータ型を、記述することができる。
なお、要素の内容モデルとは、要素の内容に出現可能な要素やデータとその順番、および要素の出現回数を規定したもののことをいう。
Standard Generalized Markup Language (SGML) やXMLなどの汎用的なデータ記述言語が世に出る前は、ソフトウェア設計者は、複数のプログラムの間でデータの受け渡しをするために、自分自身でファイルフォーマットを定義するか、ちょっとしたコンピュータ言語を定義しなければならなかった。
XSL Formatting Objects (XSL-FO) は、World Wide Web Consortium (W3C) が策定した、XMLに準拠した宣言的なページ整形 (組版) 言語である。XSL-FO処理系を使うと、XSL-FO文書を他の非XML形式 (PDFなど) に変換出力することができる。
CDATAセクションは次の記述で始まる。
そしてCDATAセクションの内容が続き、次の記述が最初に出現したところでCDATAセクションは終わる。
CDATAセクションの内容の文字列は全て文字列データとして解釈され、マークアップや実体参照や文字参照として解釈されることはない。
次の例で「送信者」の開始タグと終了タグはマークアップとして解釈される。
しかし次のように記述した場合は、
次のように記述したものと同等に解釈される。
すなわち、「送信者」タグは「星新一」の文字列と同列に位置づけられ、いずれも文字列データとして解釈される。
文字参照 &#x00F0; が要素の内容で出現した場合は、一つのUnicode文字 00F0 ("ð") として解釈される。しかしCDATAセクション内で出現した場合は、8つの文字からなる文字列として解釈される。 すなわち、アンパサンド、#マーク、文字x、数字0、数字0、文字F、数字0、セミコロンの8つの文字からなる文字列として解釈される。
MGML (Minimal Generalized Markup Language)
XML仕様のワーキンググループではジョン・ボサックが議長を務めた。 このワーキンググループではジェームズ・クラークが技術リーダを務めた。 ワーキンググループの共同エディタは、もともとはティム・ブレイと Michael Sperberg-McQueen であった。 このアクティビティのプロジェクトの途中で、ブレイはネットスケープ・コミュニケーションズとのコンサルティングの契約を結んだ。 このブレイとネットスケープの契約に対しては、マイクロソフトが強く抗議した。 ブレイは、エディタの役割を一時的に辞することを要請された。 このことに関して、ワーキンググループでは激しい議論が行われた。 この議論は、最終的にはマイクロソフトの Jean Paoli が第3の共同エディタに就くことで解決した。 なおXMLワーキンググループには、日本人としてはただ一人村田真がメンバーとして1997年に参加した。
XMLワーキンググループは、直接会って活動したことは数回しかなかった(最初の会議は1997年8月22日)。 XML仕様の設計は、電子メールと週に一度の電話会議の双方を有機的に活用することにより、成し遂げられた。 XML仕様の設計では、SGMLの欠点を解決すべく文法を簡素化した。
XQueryは、XMLにおいて、関係データベースにとってのSQLやPL/SQLに相当する、問い合わせ言語としての機能を提供する。XML文書にアクセスし、XML文書を操作(編集)し、その結果をXML文書の形で返す。
整形式XML文書が満たすべき構文の規則を説明する。
整形式XML文書としての条件が満たされることのみを考慮する場合 (スキーマ言語を使わずに手軽にXMLを使う場合) においても、XMLは、大量の文書やもしくは木構造として表現することができるデータを格納するための、一般的な枠組みとしての役割を果たすことができる。
XML文書は、要素 (element) と属性 (attribute) が複数集まって、構成されている。 要素は内部に子要素を含むことができる。属性は要素に付随し、属性の内部に子要素を含むことはできない。要素は開始タグと終了タグで内容を挟むことで表現する。 開始タグは「<要素名>」、終了タグは「</要素名>」で記述する。
一つの要素を記述するための基本的な構文を次に示す。
ここで、<要素名 属性="値"> をこの要素の開始タグといい、</要素名> を終了タグという。「内容」は何らかのテキストである。
次に示す例は整形式XML文書である。
この例は、書籍という要素を一つもつXML文書である。<書籍> が書籍要素の開始タグであり、</書籍> が書籍要素の終了タグである。「出版日="2007-10-31"」は書籍要素の属性である。この属性の名前 (属性名) は「出版日」であり、この属性の値 (属性値) は "2007-10-31" である。