目次へ

3.4 SYSTEMとPUBLIC

DOCTYPE宣言中で、DTDの外部サブセットを指定する場合、その外部サブセットの所在を記述する必要があります。その外部サブセットの指定方法には、二つあります。ひとつがシステム識別子によるもの。2つ目が、公開識別子によるものです。

システム識別子による方法は、URIを使用してファイルの所在を指定する方法です。システム識別子を使用してDTDの所在を指定する場合は、以下のように記述します。

<!DOCTYPE ルート要素 SYSTEM "外部サブセットのURI">

URI(Uniformed Resource Identifier)はURLを包含する規格ですので、URLもURIだといえます。一応、URLの構造について、解説しておきます。URLは以下の構成になっています。

プロトコル指定 : // ホスト指定 / ディレクトリ指定 

XMLで外部ファイルを参照する際は、プロトコルとしてhttp、ftp、fileなどを主に使用します。システム識別子を使用したDOCTYPE宣言の例を以下に記述します。

<!DOCTYPE memo SYSTEM "http://www.4dd.co.jp/DTD/memo.dtd">

公開識別子とは、ISOや標準化団体、業界などで利用することを目的として開発されたDTDやエンティティ宣言集を特定するための表現です。公開識別子を使用して外部ファイルの所在を指定する場合は、以下のように記述します。

<!DOCTYPE ルート要素  PUBLIC "公開識別子 " "外部サブセットのURI">

識別子の形式は、ファイルを使用するユーザ間で合意が取れていればどんなものでもかまいません。一般には、以下のようなフォーマル識別子の形式が使用されます。

"(+//または-//) 組織名/出版番号 (説明文) // データの種類 (説明文) // 言語コード "

先頭の"+//"は、このデータが正式な機関に登録されていることを表します。"-//"は、とりあえず正式に登録せず、ファイルを使用するユーザ間で合意が取れていることを示します。公開識別子による、外部サブセットの指定方法の例を以下に示します。

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2 Final//EN" "http://www.w3.org/MarkUp/Wilbur/HTML32.DTD">

3.5 まとめ

  • DTDとは、XML文書のスキーマ言語の一種である。
  • XMLには、DTDを含まないwell-formed文書とDTDを含むvalid文書がある。
  • DTDはDOCTYPE宣言において指定する。
  • DOCTYPE宣言では、要素、属性、エンティティ、記法を宣言する
  • DOCTYPE宣言中は、外部のDTDファイルの参照も行える。外部ファイル指定の方法は、SYSTEMとPUBLICがある。

*現在では、DTDの短所も明らかにされています。例えば、DTDは、XMLの構文に従っていないため、独自の構文を覚える必要があります。また、DTDは適切に名前空間に対応していません。その他、不特定の複数の定義を組み合わせて1つの文書定義として使用する(モジュール)、といった使い方に対応していません。XMLの他のスキーマ言語としては、XML Schema、RELAX、XML Data Reducedなどがあります。

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp