Copyright (C) 1999 Nihon Unisys,Ltd. for Japanese Translation.

SGMLとXMLとの比較


この文書は,W3CがNOTEとして発行したNOTE-sgml-xml-971215を基準に日本語解説を作成したもので,原文は次を参照されたい。

 http://www.w3.org/TR/NOTE-sgml-xml-971215 by James Clark

この解説は,読者の知識として,SGMLの国際規格(ISO 8879-1986)及び日本工業規格(JIS X 4151-1992)を前提としている。したがって,ここでの技術用語は,SGML規格の用語の定義に従っている。それらの用語に馴染みがない場合,日本工業規格JIS X 4151を並行して参照されたい。


小目次

  1. XMLとSGMLとの相違
  2. SGMLからXMLへの変換
  3. XMLのためのSGML宣言

1.XMLSGMLとの相違

XMLは,ここでのSGML宣言を適用した文書だけを許す。この宣言では,次のSGMLの機構使用をすべて"NO"とする。

具象構文は,次のとおり相違することに留意されたい。

次の構造体は,"SHORTTAG"が"YES"の場合SGMLでは使用可能であったが,XMLでは許さない。

net区切り子は,空要素を閉じる場合だけに利用できる。Web SGMLの付加の付属文書を適用しないSGMLでは,net区切り子は,"/>"として宣言する。この方法によれば,XMLでは,空終了タグを許さなくて,終了タグがない要素にだけnet可能開始タグを許す。 Web SGML付加の付属書を適用したSGMLでは,分離したNESTC(net-enabling start tag close,net可能開始タグ終了)の区切り子がある。 これが,net可能開始タグ<e/と空終了タグ>との組み合わせからなるXML構文<e/>を可能にする。この方法によって,XMLでは,空終了タグの直前の場合だけ,net可能開始タグを許す。

XMLは,SGMLにはない次の制約を課した。

XMLは,属性のxml:space及びxml:langの意味を事前に定義している。 更に,XMLは,すべての属性,要素型,並びに[Xx],[Mm]及び[Ll]によって 始まる記法名を予約している。

XMLは,次のとおりに振る舞う実体管理系を適用したSGML構文解析系を要求している。

XMLは,ある応用系に対して構文解析系が可能とならねばならないと いう(情報についての)要件を課している。

XMLは,"Web SGML適用の付属書"によって,なされた次の変更によっている。

"Web SGML適用の付属書"は,更に,SGML中に強制するXML制約を可能と させている。

2.SGMLからXMLへの変換

SGMLを超越するXMLの多くの制約に対して,SGML文書をその制約に合わせ かつ同じ処理系(ESIS)をもつという感触で等価である文書に自動的に 転換できる。

3.XMLのためのSGML宣言

3.1 拡張名前規則の適用例

次のSGML宣言は,ISO 8879(JIS X 4151)に対する拡張名前規則の技術 補正書の利点を使った。ただし,
Web SGML の適用の附属書は利用していない。

<!SGML  -- SGML Declaration for XML --
    "ISO 8879:1986 (ENR)"

    CHARSET
        BASESET
           "ISO Registration Number 176//CHARSET
           ISO/IEC 10646-1:1993 UCS-4 with implementation
           level 3//ESC 2/5 2/15 4/6"
        DESCSET
		0	9	UNUSED
		9	2	9
		11	2	UNUSED
		13	1	13
		14	18	UNUSED
		32	95	32
		127	1	UNUSED
		128	32	UNUSED
		160	55136	160
		55296	2048	UNUSED  -- surrogates --
		57344	8190	57344
		65534	2	UNUSED  -- FFFE and FFFF --
                65536	1048576	65536
    CAPACITY SGMLREF
        -- Capacities are not restricted in XML --
        TOTALCAP	99999999
        ENTCAP		99999999
	ENTCHCAP	99999999
	ELEMCAP		99999999
	GRPCAP		99999999
	EXGRPCAP	99999999
	EXNMCAP		99999999
	ATTCAP		99999999
	ATTCHCAP	99999999
	AVGRPCAP	99999999
	NOTCAP		99999999
	NOTCHCAP	99999999
	IDCAP		99999999
	IDREFCAP	99999999
	MAPCAP		99999999
	LKSETCAP	99999999
	LKNMCAP		99999999

    SCOPE DOCUMENT

    SYNTAX
	SHUNCHAR NONE
	BASESET  "ISO Registration Number 176//CHARSET
                 ISO/IEC 10646-1:1993 UCS-4 with implementation
                 level 3//ESC 2/5 2/15 4/6"
	DESCSET
		0	1114112		0
	FUNCTION
		RE	13
		RS	10
		SPACE	32
		TAB	SEPCHAR	9

	NAMING
		LCNMSTRT ""
		UCNMSTRT ""
		NAMESTRT
		58 95 192-214 216-246 248-305 308-318 321-328
                                  (中略)
                12449-12538 12549-12588 19968-40869 44032-55203

                LCNMCHAR ""
                UCNMCHAR ""
                NAMECHAR
                45-46 183 720-721 768-837 864-865 903 1155-1158
                                    (中略)
                12337-12341 12441-12442 12445-12446 12540-12542

		NAMECASE
			GENERAL NO
			ENTITY  NO
	DELIM
		GENERAL SGMLREF
                NET     "/>"
                PIC     "?>"
		SHORTREF NONE
	NAMES
		SGMLREF

	QUANTITY SGMLREF
		-- Quantities are not restricted in XML --
		ATTCNT		99999999
		ATTSPLEN	99999999
		-- BSEQLEN	not used --
		-- DTAGLEN      not used --
		-- DTEMPLEN     not used -- 
		ENTLVL		99999999
		GRPCNT		99999999
		GRPGTCNT	99999999
		GRPLVL		99999999
		LITLEN		99999999
		NAMELEN		99999999
		-- no needed to change NORMSEP --
		PILEN		99999999
		TAGLEN		99999999
		TAGLVL		99999999

	FEATURES
		MINIMIZE
			DATATAG NO
			OMITTAG NO
			RANK    NO
			SHORTTAG YES -- SHORTTAG is needed for NET --
		LINK
			SIMPLE  NO
			IMPLICIT NO
			EXPLICIT NO
		OTHER
			CONCUR   NO
			SUBDOC   NO
			FORMAL   NO
	APPINFO NONE
>

3.2 WEB SGML適用例

次のSGML宣言は,ISO 8879に対する"Web SGML適用の附属書"の利点を活 かした。
<!SGML  -- SGML Declaration for XML --
    "ISO 8879:1986 (WWW)"
 
    CHARSET
        BASESET
           "ISO Registration Number 176//CHARSET
           ISO/IEC 10646-1:1993 UCS-4 with implementation
           level 3//ESC 2/5 2/15 4/6"
        DESCSET
                0       9       UNUSED
                9       2       9
                11      2       UNUSED
                13      1       13
                14      18      UNUSED
                32      95      32
                127     1       UNUSED
                128     32      UNUSED
                160     55136   160
                55296   2048    UNUSED  -- surrogates --
                57344   8190    57344
                65534   2       UNUSED  -- FFFE and FFFF --
                65536   1048576 65536
    CAPACITY NONE
 
    SCOPE DOCUMENT
 
    SYNTAX
        SHUNCHAR NONE
        BASESET  "ISO Registration Number 176//CHARSET
                 ISO/IEC 10646-1:1993 UCS-4 with implementation
                 level 3//ESC 2/5 2/15 4/6"
        DESCSET
                0       1114112         0
        FUNCTION
                RE      13
                RS      10
                SPACE   32
                TAB     SEPCHAR 9
 
        NAMING
                LCNMSTRT ""
                UCNMSTRT ""
                NAMESTRT
                58 95 192-214 216-246 248-305 308-318 321-328
                                  (中略)
                12449-12538 12549-12588 19968-40869 44032-55203
 
                LCNMCHAR ""
                UCNMCHAR ""
                NAMECHAR
                45-46 183 720-721 768-837 864-865 903 1155-1158
                                    (中略)
                12337-12341 12441-12442 12445-12446 12540-12542

                NAMECASE
                        GENERAL NO
                        ENTITY  NO
        DELIM
                GENERAL SGMLREF
                HCRO    "&#38;#x" -- 38 is the number for ampersand --
		NESTC   "/"
                NET     ">"
                PIC     "?>"
                SHORTREF NONE
        NAMES
                SGMLREF
 
        QUANTITY NONE

		ENTITIES
			"amp"   38
			"lt"	60
			"gt"	62
			"quot"	34
			"apos"	39
 
        FEATURES
                MINIMIZE
                        DATATAG NO
                        OMITTAG NO
                        RANK    NO
                        SHORTTAG 
				STARTTAG
					EMPTY	NO
					UNCLOSED NO
					NETENABL IMMEDNET
				ENDTAG
					EMPTY   NO
					UNCLOSED NO
				ATTRIB
					DEFAULT  YES
					OMITNSME NO
					VALUE    NO
			EMPTYNRM	YES
			IMPLYDEF
				ATTLIST	YES
				DOCTYPE	YES
				ELEMENT	YES
				ENTITY	YES
				NOTATION	YES
		LINK
			SIMPLE	 NO 
			IMPLICIT NO 
			EXPLICIT NO
		OTHER
                        CONCUR   NO
                        SUBDOC   NO
                        FORMAL   NO
			URN	 NO
			KEEPRSRE  YES
			VALIDITY  TAG
			ENTITIES
				REF	YES
				INTEGRAL YES 
	APPINFO NONE 
        SEEALSO "ISO 8879//NOTATION Application Requirements for XML//EN"
>