DOCTYPE 宣言
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
]>