DOCTYPE 宣言 [XML 標準]

DOCTYPE 宣言は、ドキュメントのルート要素の指定、および外部ファイル、直接宣言、またはその両者を用いたドキュメント型定義 (DTD) を指定する場所を提供します。

DOCTYPE 宣言には次の項目を含めることができます。

  • ドキュメント名つまりルート要素。

    これは DOCTYPE 宣言を使用する場合は必須です。

  • ドキュメントの構造を検証するために使用できる DTD 用の SYSTEM および PUBLIC 識別子。

    PUBLIC 識別子が使用される場合は SYSTEM 識別子も必須です。

  • DTD 宣言の内部サブセット。

    内部サブセットは角かっこ ([ ]) で囲まれています。

検証を含む環境でドキュメントを処理する予定の場合、DOCTYPE 宣言は必須です。 有効な文書であるためには、ドキュメントの文書構造に対応した DTD が DOCTYPE 宣言に指定されていなければなりません。 非検証型パーサーは DOCTYPE 宣言のないドキュメントを受け入れます。

最も簡単な DOCTYPE 宣言は、ドキュメントのルート要素を指定するだけのものです。

<!DOCTYPE rootElement>

一般的には、DOCTYPE 宣言を使用するドキュメントは DTD を構成する宣言を含む外部ドキュメントを参照します。 外部 DTD を指定する場合、以下の行を使用することができます。

<!DOCTYPE rootElement SYSTEM "URIreference">

ここで URIreference は宣言を含むファイルを指します。

<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference">

PublicIdentifier は、XML パーサーが URIreference の代わりに DTD を参照するために使用できる別の識別子を提供します。 これはパーサーがネットワーク接続のないシステムで使用される場合、または接続により処理が大幅に遅延する場合に有用です。

DOCTYPE 宣言に宣言を直接含めることもできます。これは内部サブセットと呼ばれます。 DOCTYPE 宣言に外部ファイルの参照がなく、全体の DTD が直接含まれる場合は、次の構文が使用されます。

<!DOCTYPE rootElement [
declarations
]>

DOCTYPE 宣言に外部ファイル、つまり外部サブセットと結合する予定の宣言が含まれる場合は、次の構文を使用します。

<!DOCTYPE rootElement SYSTEM "URIreference"[
declarations
]>

または

<!DOCTYPE rootElement PUBLIC "PublicIdentifier" "URIreference"[
declarations
]>