DTD

みるくあいらんどっ! > ドキュメント > XML > 基礎だけ学ぶ XML講座 [初心者向け・入門]


DTDについて

このウェブサイトでは、DTDについては軽くしか説明しません。というのも、Androidアプリ開発の際、DTDを意識する機会がほとんどないためです。

先の XML文書の DTDに関する部分は以下のとおりです。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

DTDとは

DTDに記述する内容は、以下の 4つに分類されます。

  • 要素型宣言…要素に関する宣言をします。
  • 属性リスト宣言…要素の属性に関する宣言をします。
  • エンティティ宣言…エンティティ(文字参照など)に関する宣言をします。
  • 記法宣言…外部ファイルの記法に関する宣言をします。

このうち、要素型宣言と属性リスト宣言を記述すると、この XML文書の要素と属性の文法を指定することができます。そうすれば、XML文書単体で、タグづけが正しく行われているかをチェックすることができます。XML文書として正しいかどうかを超えて、(公開または独自の)XML応用規格のルールに則っているかどうかをチェックできるようになります。

DTDを自前で記述する場合と、外部のものを利用する場合があります。また、外部のものを利用しながらも独自ルールを設けることもできます。

DTDの外部サブセットを記述する

外部に存在する DTDを使用する場合の形式は以下の通りです。

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

「PUBLIC」のところは「SYSTEM」になることもありますが、説明を省略します。

さきほどのサンプル文書を再度、載せてみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<!DOCTYPE>を使用して外部サブセットを指定しています。htmlは XMLインスタンスのルート要素を表しています。その次の PUBLICは、これが一般的な DTDであることを表しています。その次の「-//W3C//DTD XHTML 1.0 Strict//EN」は外部サブセットの名前です。最後の「http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd」は DTDが存在する URLを示しています。

DTDの内部サブセットを記述する

XMLファイル内に XML文書の構造に関するルールを記述することができます。説明を省略します。

最終更新: 2014/04/15 , 公開: 2014/04/15
▲top