<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">
<TITLE>XMLのSGML宣言</TITLE>
</HEAD>
<BODY BGCOLOR="#FCFCFC">
<!--BODY BACKGROUND="/~miuraj/images/sgml1.gif"-->
<H2>XMLのSGML宣言</H2>
<HR>
XMLにはSGML宣言はありません、、、というと話が終わってしまうので。
<P>
SGMLでは文書やDTDを作成する前に、SGML宣言を用意します。
そして、その、任意のSGML宣言に基づいて、DTDを作成したり、文書を作成します。
<P>
ここで、任意とは、文字通り任意であり、どういうSGML宣言を使おうと
SGMLのルールに従っていればよく、それを処理できるか否かは、文書を処理する
アプリケーションに依存する問題です。よって、SGML文書を流通させる場合、
状況によっては、受け取った文書が処理できないということもありえます。
<BR>
しかし、「処理できない」事はSGMLの責任でもなんでもなく、文書を交換する
双方の責任になります。
<BR>
では、XMLの場合はどうか?
<P>
XMLの場合には、
<CENTER>
<STRONG>
SGML宣言は無い
</STRONG>
</CENTER>
<P>
んだそうです。XMLの仕様にのっとったSGML宣言を考えてみることはできますが。
<P>
「XMLがSGMLのsubsetであり、かつ、SGML宣言が無い」ということは、
(勝手に推測しますと、)「あるXML文書を処理できるアプリケーションならば、
(一応)任意のXML文書を処理できる」という事になるかと思います。
<P>
「そんなこと言ったって、SGMLにはオプション機構がいっぱいあるじゃんか」と
いう話もあるでしょうが、XMLでは、"subset"という位でSGML宣言で定義(指示?)できる
機構についてはかなり制限を設けてあります。
<P>
「百聞は一見にしかず」というわけで、XMLのSGML宣言の例(一部)を以下に書いて
みます。出展は、<A HREF="/~miuraj/xml/xml-bib.html">XML: PRINCIPLES, TOOLS, AND TECHNIQUES, World Wide Web Journal: Volume 2, Issue 4</A>のP.52からの
SGML宣言で、一部、私が勝手に変更してあります。
<BR>
#ところどころ日本語でコメントがありますが、その部分は無視して下さい。
<P>
<HR>
<PRE>
&lt;!SGML -- SGML Declaration for XML --
	"ISO 8879:1996(ENR)"
		-- Extended Naming Rules に従う旨の最小表記 --
CHARSET
	BASESET
		"ISO Registration Number 176//CHARSET
		ISO/IEC 10646-1:1993 UCS-2 with implementation
		level 3//ESC 2/5 2/15/4/5"
		-- いわゆるUNICODEってやつ --
	DESCSET
		・
		・
		・
		128	32	UNUSED
		160	65376	160	-- 2バイト文字を扱うため --
CAPACITY SGMLREF
	TOTALCAP	99999999
	・		・		-- 規格参照容量集合はすべて99999999 --
	・		・
	LKNMCAP		99999999
SCOPE DOCUMENT
SYNTAX
	SHUNCHAR NONE
	BASESET
		"ISO Registration Number 176//CHARSET
		ISO/IEC 10646-1:1993 UCS-2 with implementation
		level 3//ESC 2/5 2/15/4/5"
	DESCSET
		0	65536	0
	FUNCTION
		RE	13
		RS	10
		SPACE	32
		TAB	SEPCHAR	9
		ITAB	SEPCHAR	12288	--ideographic space--
		-- ideographic spcae って何? --
NAMING
	LCNMSTRT
		224-226 248-255 ・・・・・
		・・・・・・・・・・・・
		・・・・・・・・・・・・
		8560-8575 65345-65370
	UCNMSTRT
		192-214 216-222 ・・・・・
		・・・・・・・・・・・・
		・・・・・・・・・・・・
		8544-8559 65313-65338
	NAMESTRT
		58 95 170 ・・・・・・・・
		・・・・・・・・・・・・
		・・・・・・・・・・・・
		65490-65495 65498-65500
	LCNMCHAR "-."
	UCNMCHAR "-."
	NAMECHAR
		183 720 721・・・・・・・・
		・・・・・・・・・・・・
		・・・・・・・・・・・・
		65438 65439
	NAMECASE
		GENERAL	YES
		ENTITY	NO
	DELIM
		GENERAL SGMLREF
		NET	"/&gt;"
		PIC	"?&gt;"
		-- NET と PIC の指定がミソ --
		SHORTREF	NONE
	NAMES
		SGMLREF
	QUANTITY SGMLREF
		・
		・
		NORMSEP		2
		・
		・
		--ほとんど99999999---
		-- BSEQLEN は(SHORTREF が NONE なので)not used だそうで --
		-- DTAGLEN,DTEMPLEN(は DATATAG が NO(後述))なので not used だそうで --
		-- 上記2行の(・・・)は私なりの解釈ですけど、いいですよね ?
			not used てことは、規格参照量集合に従うのかな? --
FEATURES
	MINIMIZE
		DATATAG		NO
		OMITTAG		NO	-- こいつは面倒だね --
		RANK		NO
		SHORTTAG	YES
		-- NET のために必要(らしい) --
	LINK
		--全部 NO--
	OTHER
		--全部 NO--
	APPINFO	NONE
>

</PRE>
<HR>
<A HREF="./xmldecl2.html">つぎ</A>に、このSGML宣言の(私なりに解釈した)特徴を。
<HR>
<A HREF="index.html">XML入門</A>へ戻る
<HR>
<ADDRESS>
miuraj@isc.meiji.ac.jp
</ADDRESS>
</BODY>
</HTML>
