<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">
<TITLE>文書型宣言について</TITLE>
</HEAD>
<BODY BGCOLOR="#FCFCFC">
<!--BODY BACKGROUND="/~miuraj/images/sgml1.gif"-->
<H2>文書型宣言について</H2>
<HR>
SGML文書では、その先頭に、
<P>
<CENTER>
&lt;!DOCTYPE　ほにゃほや　・・・
</CENTER>
<P>
などと記述して、その文書の型を宣言したりしますよね。
<BR>
XMLもSGML同様、文書型宣言が存在する(?)んですが、XMLの場合は、別に文書型宣言が無くてもいいそうです。
<BR>
# なんか変な感じ、、、
<BR>
文書型宣言が必要(?)なら、DOCTYPE宣言をすればいいし、別にしなくてもいい。
どちらの場合でも、XML文書としては正しいそうです。
<P>
XML関連のドキュメントをいろいろ見ていると、
<OL>
<LI><STRONG>valid XML document</STRONG>(正しい、正当なXML文書 ?)
<LI><STRONG>well-formed XML document</STRONG>(適合するXML文書 ?)
</OL>
と、XML文書には2種類あることがわかります。どう違うかというと、
<UL>
<LI><STRONG>valid XML document</STRONG>には、文書型宣言(定義)がなくてはならない
<LI><STRONG>well-formed XML document</STRONG>の方は、無くてもいい(XMLの構文規則に従っていればよい)
</UL>
そうで。
<P>
で、文書型宣言については、以下の様なことが、XML-PR(WD)には書かれています。
<UL>
<LI>文書型宣言をXML文書に記載する場合は、<STRONG>root element</STRONG>(文書の先頭(?)要素。HTMLでいうところの<STRONG>&lt;HTML&gt;</STRONG>)の前に記述する
<LI>文書型宣言の名称は、そのXML文書の<STRONG>root element</STRONG>の名称と同一(match)でなければならない(must)
</UL>
<P>
ちなみに、要素を宣言する場合は、こんな感じになります。
<CENTER>
<STRONG>
&lt;!ELEMENT　P　#PCDATA　&gt;
</STRONG>
</CENTER>
<P>
タグの省略はないですから、これでいい。
<BR>
<P>
そうそう、どういうときに、文書型宣言(あるいは定義)が無くてもいいかというと、
<UL>
<LI>タグ付けされた文書から、文書型定義をアプリケーションが推測できる
</UL>
場合にはなくてもいいそうで。
<BR>
# これって、結構大変じゃないかと思うけど、どうなんだろう。
<BR>
# XMLの仕様を良く読めばわかるかな。
<P>
とりあえず、この程度で
<HR>
<A HREF="index.html">XML入門</A>へ戻る
<HR>
<ADDRESS>
miuraj@isc.meiji.ac.jp
</ADDRESS>
</BODY>
</HTML>
