[4] [[SGML]]や[[XML]]の文脈で使われる[DFN[要素内容]]という言葉には、 2種類の意味があります。 1つは、[[内容モデル]]の種類で、[[混合内容]]と同列のものを指しています (>>1)。 もう1つは、字面そのままの[[要素]]の[[内容]]という意味です (>>2)。 * 要素内容 (SGML、XML) [1] > [定義: ある[[要素型]]が、その型の[[要素]]が[[子要素]]だけを含ま'''なければならない''' ([[文字データ]]なしの) とき、[DFN[[RUBY[[[要素内容]]][ようそないよう]@en[element content]]]]を持ちます。ただし、その時[[子要素]]は[[任意選択]]で[[空白]] ([[非終端記号]] [CODE@en[[[S]]]] に[[一致]]する[[文字]]群) で分離しても構いません。] ;; [5] '''内容モデル''': ある[[要素型]]が[[要素内容]]を持つことは、 その[[要素型]]の[[要素型宣言]]で[[要素内容モデル]]が指定されていることによってわかります。 [[XML]]では[[混合内容宣言]]は必ず[[モデル群]]の最初に [CODE(XML)@en[#[[PCDATA]]]]という[[鍵語]]が現れますから、 [[混合内容]]と[[要素内容]]を容易に区別できます。 [6] '''要素内容な要素の内容''': [[要素内容]]で[[宣言]]された[[要素型]]の[[要素]]が[[妥当]]であるためには、 その[[要素]]の[[子要素]]が[[要素内容モデル]]に[[適合]]しなければなりません。 [[要素内容]]な[[要素]]でも、[[注釈]]や[[処理指令]]は通常通り含められます。 しかし、[[文字データ]]を含めることはできません。 ただし、[[空白]]は[[子要素]]の前後に自由に挿入できます。 この[[空白]]については[[要素内容空白]]の項を参照してください。 なお、[[空白]]は''直接''記述しなければなりません。 すなわち、[[参照]]や[[[CODE(XML)@en[CDATA]]区間]]を使うことは''できません''。 [[#comment]] * メモ [2] [Q[要素内容]] ([Q@en[element content]]) という言葉は、単純にそのまま[Q[[[要素]]の[[内容]]]]という意味でも使われます。 この場合、[[内容モデル]]が[[混合内容]]でも[CODE(SGML)@en[[[CDATA]]]]でも、[[要素]]の[[内容]]でさえあれば[[要素内容]]と言われます。 [3] そんな紛らわしい使い方をするなと言いたいところですが、 [[JIS X 4151]]‐1992 自体も2つの意味で[Q[要素内容]]という言葉を使っているみたいです。 例えば定義 (178) には[Q[[[記法属性]]によって[[要素内容]]を指定し]]とありますが、 >>1 の意味ではなく >>2 の意味だろうなあと思います。 ;; [[ISO 8879]]を持っている人がいたら、原文がどうなっているのか確認してみてもらえないでしょうかね?