WWW INFOMATION | ||||||||||||||||||
XML top >>DTD仕様詳細 内部サブセットと外部サブセット
■ 内部サブセットと外部サブセット(Internal &External subset)
DTDの定義方法は、内部サブセット、外部サブセット、および、内部サブセットと外部サブセットの混在の方法があります。
・内部サブセット
XMLドキュメント内にDTDを定義する方法を内部サブセット(Internal subset)と言い、以下のような形式をとります。
<?xml version="1.0" ?>
<!-- 以下DTD --> <!DOCTYPE EX [ <!ELEMENT EX (A,B)> <!ELEMENT A EMPTY> <!ELEMENT A EMPTY> ] > <!-- 以下XMLインスタンス(XML本文) --> <EX> <A></A> <B></B> </EX> 内部セットのDTD定義は、XML文章内の”<!DOCTYPE XXX [”から"] >"の間に定義されます。XXXは、文章要素(ルート要素)を指定します。 ・外部サブセット
DTDを定義したDTDファイルを作成し、XML文章内から、DTDファイルの位置を指定する方法を外部サブセットと言います。
外部サブセットは以下のような形式をとります。 ・XML文書
<?xml version="1.0" ?>
<!-- 以下DTDファイルの位置を示す。 --> <!DOCTYPE EX SYSTEM "Sample.dtd" > <!-- 以下XMLインスタンス(XML本文) --> <EX> <A></A> <B></B> </EX> ・DTDファイル("Sample.dtd"ファイル)
<!ELEMENT EX (A,B)>
外部サブセットでは、XML文書内に以下のDTDファイル参照先を示す定義を記述します。
ファイル名はURLでも構いません。また、外部サブセットの参照先が、広く知られたDTD定義である場合、以下の形式を使用することもできます。
この定義を利用するケースとして、XHTMLがあります。
<!DOCTYPE html PUBLIC "-//W3c//DTD XHTML 1.1//eN"
"http://www.w3.org/tR/xhtml11/DTD/xhtml11.dtd" > このDTDは、W3Cが、XMLでHTMLと同様の記述をするために作成したものです。(そのため、広く知られています。)
ISO登録機関であれば、先頭が「+//」、ISO登録機関以外は「-//」になります。 ・内部サブセットと外部サブセットの混在
内部サブセットと外部サブセットを混在させる方法もあります。
以下のような形式となります。 ・XML文章
<?xml version="1.0" ?>
<!-- 以下DTD --> <!DOCTYPE EX SYSTEM "Sample.dtd"[ <!ELEMENT A (#PCDATA)> <!ELEMENT B EMPTY> ] > <!-- 以下XMLインスタンス(XML本文) --> <EX> <A>DATA</A> <B></B> </EX> ・DTD外部サブセット <!ELEMENT EX (A,B)>
|
|
|||||||||||||||||