<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前</anchor>を、<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">document type name</rt></rubyb></dfn>といいます。
文書型名は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素型名</anchor>と同じです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="112" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[112]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型宣言</anchor> (<code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOCTYPE</anchor></code>) の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前</anchor>として記述します。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> では複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型宣言</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">連結型宣言</anchor>を記述することができますが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>は同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">連結型名</anchor>とは異なっていなければなりません。
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 4151</anchor>‐1992 10.1</src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="113" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[113]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型指定</anchor>などで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型</anchor>の区別のために<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>を使います。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> また、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>に対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素型宣言</anchor>は必須です。 
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 4151</anchor>‐1992 10.1</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="117" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[117]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>とその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>の情報が含まれていますが、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>全体がどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>によって表されるかの情報は含まれていません。
ですから<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型宣言</anchor>でそれを指定する必要があるのです。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">生成規則</anchor>における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始記号</anchor>に相当するものですね。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="118" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[118]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</anchor> レベルではどの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>になり得るかの情報もありませんから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</anchor> に含まれる任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素名</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>として使えます。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>レベルの要件で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>として使えるものが限定されているかもしれませんが。)</p><section><h1><code class="SGML" xml:lang="en">#IMPLIED</code></h1><figure><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <code class="ABNF"><dfn>文書型名</dfn> := <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">共通識別子</anchor> / <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">rni</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IMPLIED</anchor> ;; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">WebSGML</anchor> [111] </code></li></ul></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[114]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型宣言</anchor>にわざわざ明記せずとも、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>を見れば良いんです。ということで <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web SGML</anchor>
では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>として <dfn><code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">#IMPLIED</anchor></code></dfn>
と書けるようになりました。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web SGML</anchor> K.4.5</src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="115" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[115]</anchor-end> 但し、<ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始タグ</anchor>が省略されている場合</li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>の開始タグが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">共通識別子</anchor>を含まない場合</li></ul></p><p>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">報告可能マーク誤り</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="116" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[116]</anchor-end> また、 <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LINK</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EXPLICIT</anchor> YES</code>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">明示連結機能</anchor>使用) 又は
<code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CONCUR</anchor> YES</code> のときは使えません。</p></section><section><h1>文書型名と文書要素名の相違</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;1</anchor-internal>,<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;3</anchor-internal> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">妥当性</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">表明</anchor>を行わない時には (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Web SGML</anchor>
の <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">NOASSERT</anchor></code> 参照)、
文書型名と文書要素の要素型名が異なっていたり、
文書型名と同じ要素型名の要素型宣言が欠けていたりしても構いません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">そのような場合、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> 的には、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">妥当</anchor>ではありませんが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式</anchor>です。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="119" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[119]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</anchor> がないと構文解析ができず、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>が決まることで<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>が決まる仕組みになっていました。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始タグ</anchor>は省略可能にできました。しかし <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</anchor> なくても構文解析できますし、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始タグ</anchor>の省略はできず、関係が逆転しているといえます。</p></section><section><h1>文書型名 = 根要素の要素型名</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> 
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素名</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor>として<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型宣言</anchor>に書くこと、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始タグ</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終了タグ</anchor>を省略可能であることから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">根要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素名</anchor>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型</anchor>の名前とする
(≒ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク付け言語</anchor>の名前とする)
慣習がありました。
(そうでないものもありました。)</p><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク付け言語</anchor>の名前の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素名</anchor></figcaption><ul><li><code>html</code></li><li><code>htmlplus</code></li><li><code>pre-html</code></li><li><code>jdcm</code></li><li><code>dtbook</code></li><li><code>svg</code></li><li><code>smil</code></li></ul></figure></section><section><h1>HTML <code class="HTML" xml:lang="en">DOCTYPE</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="120" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[120]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の <code class="HTML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOCTYPE</anchor></code> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> に由来しますが本来の意味は失っており、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOCTYPEスイッチ</anchor>としての機能しかありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="121" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[121]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書型名</anchor> (にあたる部分) は <code class="HTMLe" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">html</anchor></code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ASCII大文字・小文字不区別</anchor>)
でなければなりません。そうでなかった場合<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">奇癖モード</anchor>になります。</p></section><section><h1>関連</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">体系</anchor>では、<q><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">体系文書要素形式名</anchor></q>が文書型名に相当します。
文書型名は文書型宣言で宣言しますが、
体系文書要素形式名は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">体系支援宣言</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">体系支援属性</anchor>で指定します。</p></section><section><h1>メモ</h1></section></body></html>