DTD を XML 文書に取り込む - XML プログラミング
PROGRAM
.auto-style1 {
color: #000040;
}
DTD を XML 文書に取り込む
XML 文書では、XML スキーマ や DTD (Document Type Definition) を使用して、文書の構造を定義することができます。
ここでは、別ファイルとして用意した DTD を XML 文書に取り込む方法について記してみます。
DTD ファイルの作成方法については DTD の書き方 などを参考にしてください。
XML
DTD ファイルを用意したら、XML 宣言とルート要素との間に、DOCTYPE 宣言を記載します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ルート要素 SYSTEM "書式定義.dtd">
<ルート要素>
</ルート要素>
このようにすることで、"ルート要素" 用に DTD ファイル "書式定義.dtd" を読み込むことができました。
SYSTEM の後に指定しているファイル名は、上記の例では XML ファイルと同じ場所にある DTD ファイルですけど、そのほかにも http:// で始まる URL や ftp:// や file:// での指定も可能です。
なお、DOCTYPE 宣言は 1 つの XML 文書に付き 1 つしか記載できないようなので、スタイルシート等のように、複数のルールをひとつの文書に適用することはできない感じです。
XML 文書の定義を、ファイルを分けて適用するのが都合が良い場合には、DTD ではなく XML スキーマを使用する必要があるようでした。
XHTML
ちなみに XHTML の場合には、次のように "SYSTEM" ではなく "PUBLIC" を使って、たとえば次のように指定します。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
</html>
PUBLIC の後の指定方法は場合によって違うらしいので、何らかの形で決められた指定方法に従うことになるようです。
HTML の場合は <html> で始まるので、DOCTYPE で指定されているルート要素は "html" になっています。
なお、XHTML で指定できる DOCTYPE としては、他にも次のようなものがあるようです。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
XHTML 1.0 の規則に厳密に従った文書です。 |
---|---|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
XHTML 1.0 の規則を基本としつつ、厳密に従わなくても良い文書です。フレームタグには対応しません。 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> |
XHTML 1.0 の規則を基本としつつ、厳密に従わなくても良い文書です。フレームタグにも対応します。 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML
1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
XHTML 1.1 の規則に厳密に従った文書です。 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic
1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> |
小型デバイスなどでの実装を考えた XHTML 1.0 のサブセット(機能制限版)です。 |
Web サイトを作る上では、柔軟性を持っている Transitional のセットが手軽でいいかもしれません。
[ もどる ]