<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文書を作成する際に、終了タグを省略することがありますよね。それでも別段、支障はない。何故かというと、SGMLの場合、
	<P>
	<OL>
	<LI>先ず、SGML宣言で「タグの省略可能」と宣言する
	<BR>
	(大抵、宣言されてる。自分でSGML宣言作る場合も、まぁ、こうするでしょう。私は絶対、こう宣言する。)
	<LI>DTDで「終了タグは省略可能」と定義する
	</OL>
をしておけばいいんです。
<P>
で、XMLの場合はというと、これはご法度。理由は、現在のXML-PR(971208版)では、
	<P>
	<DL>
	<DD>element ::= EmptyElemTag | STag content ETag (以下略)
	</DL>
	<P>
と定義されているから。つまり、
	<P>
	<UL>
	<LI>要素は空要素(EmptyElemTag)あるいは(|)、開始タグ(STag)・内容(content)・終了タグ(ETag)で構成される
	<LI>要素が空要素でない場合、開始タグ〜終了タグは、それぞれ、その順番で文書に現われる
	</UL>
<P>
で、さらに、上記の<STRONG>ETag</STRONG>の定義の直前に、
	<P>
	<DL>
	<DD>The end of every element that begins with a start-tag <STRONG>must be marked by an end-tag</STRONG> containing a name that echoes the element's type as given in the start-tag:
	</DL>
	<P>
と書いてあります。<STRONG>must</STRONG>ですから。
<P>
適当に省略してXML文書を作成して、SPのsgmlnorm(だったっけ?)か何かを使って、それを補えばいいかもしれませんが。
<HR>
<A HREF="index.html">XML入門</A>へ戻る
<HR>
<ADDRESS>
miuraj@isc.meiji.ac.jp
</ADDRESS>
</BODY>
</HTML>
