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