<HTML>
<HEAD>
<TITLE>要素の型</TITLE>
</HEAD>
<BODY BGCOLOR="WHITE">
<H2>要素の型</H2>
<HR>
型宣言するとき、
<P>
<STRONG>
&lt;!ELEMENT ホゲホゲ - O (下位要素や型の指定)&gt;
</STRONG>
<P>
と書きますが、この「型」には決められた種類があります。以下の5つです。
<UL>
<LI>#PCDATA
<LI>CDATA
<LI>RCDATA
<LI>ANY
<LI>EMPTY
</UL>
この中で、DTDを作成するとき <STRONG>#PCDATA</STRONG> が一番お目にかかる
機会が多いでしょう。
次に多いのが <STRONG>CDATA</STRONG> と <STRONG>EMPTY</STRONG> かと思います。
<BR>
これらが何なのかについて簡単に。
<P>
<H3>#PCDATA</H3>
これは
<UL>
<LI>この要素は文でできてる
<LI>実体参照など「パーサーが解析する必要」があるものが文に含まれる可能性がある
(真っ先にその点をパーサーに解析させる必要がある)
<LI>下位要素がある(これは重要でない)
</UL>
ときに使います。早い話がパーサーを素通りされては困る文というときにはこれをつかいます。
<BR>
大抵の要素はこれですが(ほんとか?)、これをDTD内で宣言する場合には、
必ず、<STRONG>|</STRONG> で他の要素と繋ぎましょう。
<BR>
なぜだかわからない方は考えてみてください。
<P>
<H3>CDATA</H3>
こちらは簡単で、パーサーを素通りさせていい文というか、
終了タグしかパーサーに認識させない。
これは終了タグを必須にしておきましょう。
<BR>
なぜか、、、、頭の体操。
<P>
<H3>EMPTY</H3>
ようするに、タグだけあって内容が無いものです。HTMLでいうところの
 <STRONG>&lt;IMG&gt;</STRONG> などに相当します。
<BR>
これを宣言する場合は、以下の点に注意しましょう。(私はハマった。)
<UL>
<LI>終了タグは「必ず」省略する(あってはいけない)
</UL>
<P>
<H3>RCDATA</H3>
順序が違っちゃいましたが、、、
<BR>
これは、CDATAとほとんど同じですが、実体参照だけ(あと、終了タグか)は
パーサーにきちんと解析させたい場合に使います。
<P>
<H3>ANY</H3>
文字通りなんでもいいらしい。見たこと無い。
<HR>
<ADDRESS>
miuraj@isc.meiji.ac.jp
</ADDRESS>
</BODY>
</HTML>

