[1] > :(118) [DFN[実体文]] ([DFN@en[entity text]]): [[引数表記]]の中に[[置換文]]を含むことによって、 又は[[外部識別子]]によって[[置換文]]を指定する[[実体宣言]]の[[引数]]。 [17] 仕様書: - [[JIS X 4151]]‐1992 ([[SGML]]) -- [CSECTION[3. 用語の定義]] - [4] [CODE(ABNF)[[DFN[実体文]] := [[引数表記]] / データ文 / 括った文 / 外部実体指定 ;; (105)]] - [5] [CODE(ABNF)[[DFN[データ文]] := ([[CDATA]] / [[SDATA]] / [[PI]]) 1*[[ps]] 引数表記 ;; (106)]] - [6] [CODE(ABNF)[[DFN[括った文]] := ([[STARTTAG]] / [[ENDTAG]] / [[MS]] / [[MD]]) 1*ps 引数表記 ;; (107)]] - [7] [CODE(ABNF)[[DFN[外部実体指定]] := [[外部識別子]] [1*ps 実体型] ;; (108)]] - [8] [CODE(ABNF)[[DFN[実体型]] := [[SUBDOC]] / ((CDATA / [[NDATA]] / SDATA) 1*ps [[記法名]] [ [[データ属性指定]] ]) ;; (109)]] 仕様書: [[JIS X 4151]]‐1992 9.5.2 実体文 [2] [[XML]] でいう[CODE@en[[[EntityDef]]]] ([[一般実体宣言]]) や[CODE@en[[[PEDef]]]] ([[引数実体宣言]]) ですね。 [3] [[規格参照具象構文]]で書くと、 [SAMP(SGML)[]] とか [SAMP(SGML)[]] とか。 [9] >>4-8 を、意味ではなく構文に注意して書きなおすと、 - [14] [CODE(ABNF)[[DFN[実体文]] := [鍵語[SUP[1]] 1*ps] 引数表記 / 外部識別子 (SUBDOC / 鍵語[SUP[2]] 1*ps 記法名 [データ属性指定]) ;; (105)]] - [13] [CODE(ABNF)[[DFN[鍵語[SUP[1]]]] := CDATA / SDATA / PI / STARTTAG / ENDTAG / MS / MD]] - [12] [CODE(ABNF)[[DFN[鍵語[SUP[2]]]] := CDATA / NDATA / SDATA]] [[#comment]] * 実体文の引数表記 [15] 実体文の一種として、[[引数表記]]だけを1つ指定することができます。 その場合、その[[実体]]の[[置換文]]は、 この引数表記を解釈して得られる文になります。 仕様書: JIS X 4151‐1992 9.5.2 実体文 [16] 置換文の最後には、自動的に [CODE(SGML)[[[Ee]]]] が補われます。 直接 [CODE(SGML)[Ee]] を引数表記中に書いてはいけません (し、普通は書けません)。 更に、 JIS には、 >備考 文の中に引数表記を含む実体は、その表記の解釈のときに決定する実体参照を含んでいた場合でも一つの実体としてみなす。 その場合には、 [CODE(SGML)[Ee]] は明示しない。 と書かれています。つまり、 [PRE(SGML)[ ]PRE] という場合でも、実体 [SAMP[bar]] は文字データと引数実体 [SAMP[foo]] を組み合わせたものではなく、 実体参照を展開した文字列 [SAMP[あいうえお ABCDEFG あいうえお]] として定義されます。 最後の [Q[その場合には、 [CODE(SGML)[Ee]] は明示しない。]] というのは意味がよくわかりませんが、 引数実体 [SAMP[%foo]] の最後にあったはずの [SAMP(SGML)[Ee]] が [SAMP[bar]] の置換文では消滅していることを言いたいのではないでしょうか。 [[#comment]] * メモ