Extensible Markup Language
XML Schema は、World Wide Web Consortium (W3C) により開発された、DTDの後継となる新しいスキーマ言語である。 非公式には、XSDと呼ばれることもある。XSDは、XML Schema のインスタンス (スキーマ) を意味する "XML Schema Definition" の頭字語である。
XML Schema は、豊富なデータ型を扱うことができるスキーマ言語である。XML文書の論理的構造について、DTDより詳細な制約を記述することができる。そしてDTDより詳細な妥当性検証の枠組みのもとで、妥当性検証が行われる。他にも、XMLによるマークアップ言語のスキーマの記述能力において、DTDと比べて非常に高いという長所も備えている。
また、XML Schema によるスキーマ自体を、XMLに準拠した形式を使って記述する。XML Schema のスキーマ自体がXMLに準拠することで、スキーマを編集したりスキーマに何らかの処理を行うために、普通のXMLツールを使うことができるようになる。
ただし、XML Schema の妥当性検証器を実装する作業には、単にXML文書を読むことができる能力よりも、非常に多くの知識と能力を必要とする。
XML Schema に対しては賛否両論がある。XML Schema に対する批判の一部を示す。
XML Schema の仕様は非常に膨大な分量がある。そのため XML Schema を理解することは難しい。またそのため XML Schema の妥当性検証器を実装することも難しい。
実体参照 (entity reference) は、実体を表現するプレースホルダである。
XMLにおける実体 (entity) とは、SGMLにおける実体と同じように、名前の付けられたデータの本体である。具体的には、ファイルもしくは置換文字列のように、何らかの形でXML文書の一部となるデータを格納しているもののことである。置換文字列を使う事例としては、次のような場合がある。
キーボードから簡単には入力できない文字をXML文書中に表現したい場合。
決まった単語の並びがXML文書中に何度も出現する場合。
実体参照の構成は、まず最初にアンパサンド ("&") があり、その後に実体の名前が続き、セミコロン (";") で終わる。
XMLには、事前宣言された実体として次の表に示す5つの実体がある。
「AT&T」の名前でアンパサンドを表現するために、事前宣言されたXMLの実体を使う例を示す。
事前宣言された実体以外の実体を宣言する必要がある場合、XML文書の Document Type Definition (DTD、文書型定義) の内部で宣言する。
XML文書の内部に定義されたDTDを使って、置換文字列としての実体を宣言して、実体参照を使う例を次に示す。宣言された実体は、一つの文字であっても良いし、テキストの断片であっても良いし、他の実体への参照を含むテキストであっても良い。
XMLに準拠したブラウザを使うと、先のXML文書は次のように表示される。
ファイルの実体を参照するXML文書の例を示す。
なお、別ファイル another-file.xml には次の内容が記されていることとする。
XMLに準拠したブラウザでこのXML文書を表示すると、次のようになる。
XHTML 1.0 Strict に準拠したXML文書での文書型宣言は、次のとおりである。
XML文書においては、ルート要素がその文書の最初の要素である (例えば、XHTMLではルート要素は html である)。SYSTEM キーワードと PUBLIC キーワードは、その文書型 (文書の構造) の種類を指定する。一般に広く知られていないDTDを使う場合は、SYSTEM キーワードを使う。一般に広く知られているDTDを使う場合 (XHTMLなど) は、PUBLIC キーワードを使う。
SYSTEM キーワードを使う際は、その後に続けて、その文書が準拠するDTDのファイルのURIを、外部サブセット参照として記述する。
PUBLIC キーワードを使う際は、その後に続けて、その文書が準拠するDTDの公開識別子 (public identifier) を指定しなければならない (例えば XHTML 1.0 の公開識別子は、"-//W3C//DTD XHTML 1.0 Strict//EN" である)。公開識別子を記述した後に続けて、SYSTEM キーワードを使う場合と同様に、その文書が準拠するDTDのファイルのURIを、外部サブセット参照として記述する。
内部サブセットは必要に応じて記述する。 内部サブセットとして、DTDの一部分もしくはDTDの全体を記述することができる。 なお、内部サブセットとしてDTDの全体を記述する場合は、SYSTEMキーワード・PUBLICキーワード・外部サブセット参照は、いずれも記述しない。
XMLは現在、広く普及している技術であるが、その技術的な有用性などについて、肯定的に評価する人々が多い一方で、批判的に評価する人々も多い (#XMLに対する支持と批判を参照)。
マイクロソフトの Microsoft Office では Microsoft Office XP のバージョンからXML形式への対応を始め、Microsoft Office 2003 で独自の定義の XML Schema がサポートされるに至った。 Microsoft Office 2007 ではデフォルトの保存方式がXMLとなった(Office Open XML)。Microsoft Office 2007 のいくつかの機能では、XMLファイルを利用者が指定したスキーマ (ただしDTDではない) に沿って編集することができるようになっている。 またマイクロソフトは、Microsoft Office 2003 のためのファイルフォーマット互換性キットを公開している。 この互換性キットを使うことにより、以前のバージョンの Microsoft Office で作成された文書をXMLに準拠した新しいフォーマットで保存することができる。
エディタについては現在、多くのXMLエディタが使えるようになっている。
Text Encoding Initiative (TEI、en:Text Encoding Initiative) は、「転送構文」として使うためのSGMLのプロファイルを定義している。