since: 30th/Aug./2001; last modified: 30th/Aug./2001
Contents
XML 文書では、 XML 宣言の次には、コメントか文書型定義宣言が来ます。コメントは任意ですが、 XHTML 1.1 文書型の定義の宣言は必須です。
XHTML 1.1 の文書の形式を定義しているのが XHTML 1.1 DTD です。これに則った文書は、その旨を文書の最初に宣言しておく必要があります。 XHTML 1.1 DTD を参照するには、次の二つの方法が与えられています:
公開識別子 | PUBLIC | -//W3C//DTD XHTML 1.1//EN |
---|---|---|
システム識別子 | SYSTEM | http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd |
公開識別子は、普遍的にこの DTD を参照するための識別子であり、値は FPI (Formal Public Identifier)と呼ばれます。これは標準化団体などが定義した DTD を参照するためのものであり、 FPI は絶対に自分で書き換えてはいけません。
一方、システム識別子は、ウェブ上で、当該文書が依拠する DTD を参照する URI です。従って、プライベートな DTD などの参照にも使うことが出来て、自由に変更して構いません。
この二つの識別子を用いて、当該文書が依拠する文書型を宣言するものが、 DTD 宣言です:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
この文書は XHTML 1.1 ですが、同じディレクトリに XHTML 1.1 を表す DTD を置いてあります(ファイル)。従って、私はこの文書の DTD 宣言では、システム識別子を、次のように相対 URI で参照することも許されます:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd">
XML では、 DTD 宣言中のシステム識別子も必須とされていますので、 XHTML でも省略することは出来ません。 HTML 4 では省略可能でしたから、間違えないようにしてください。
HTML 4 では、要素名は大文字と小文字を区別しませんでしたから、 DTD 宣言中の文書型名 HTML
は、大文字でも小文字でも許されました。しかし、 XML では大文字と小文字を区別しますので、 DTD 宣言中の文書型名は、必ず小文字で html
としなければなりません。
以下の内容は、最初は読まなくても結構です。自分で文書型を定義したい場合は、必要となります。
XML を応用した文書型を識別する FPI は次の規則で命名されています:
-//所有組織名//DTD XHTML-識別名//言語
ISO などの標準化団体に登録していない組織名を用いる場合は、冒頭の -//
が必須になります。
結果として、文書型宣言は次のように成ります:
<!DOCTYPE root PUBLIC "FPI" "URI">
一方、社内文書などのプライベートな文書型は、 PUBLIC 識別子は使わず、 SYSTEM 識別子を用います。このとき FPI に類するものはなく、 URI だけで参照します:
<!DOCTYPE root SYSTEM "URI">
SYSTEM 識別子の URI は、絶対 URI 、相対 URI 共に使えますので、次のようにしても構いません:
<!DOCTYPE supply SYSTEM "file:///pub/www/doctype/supply.dtd"> <!DOCTYPE commerce SYSTEM "/doctype/commerce.dtd"> <!DOCTYPE learn SYSTEM "../../doctype/learn.dtd">
URI書式で何が便利かは、使い道によりますので、十分検討する必要があります。