#?SuikaWiki/0.9
- [1] [CODE(ABNF)[[DFN[要素型宣言]] := [CODE(SGML)[[[mdo]]]] [[ELEMENT]] 1*[[ps]] [[要素型]] [1*ps タグ省略最小化] 1*ps ([[宣言内容]] / [[内容モデル]]) *ps [CODE(SGML)[[[mdc]]]] ;; [[JISX4151]]‐1992 (116)]]
- [2] [CODE(ABNF)[[DFN[タグ省略最小化]] := 最小化 1*ps 最小化 ;; (122)]] タグ省略最小化引数を指定できるのは、 [CODE(SGML)[[[OMITTAG]] NO]] のときだけ。
- [3] [CODE(SGML)[[DFN[最小化]] := O / [CODE(SGML)[minus]] ;; (123), (124)]] 一つ目は開始タグ、二つ目は終了タグの指定。
- [4] [CODE(ABNF)[[DFN[要素型]] := [[共通識別子]] / [[名前群]] / [[付番要素]] / [[付番群]] ;; (117)]] 付番核に[[付番]]を付けて得られるものも含めて、共通識別子は[[文書型定義]]内で固有でなければならない。 (10.2.1)
[[#comment]]
* 暗黙の要素型宣言
[5] [[WebSGML]] で [CODE(SGML)[[[IMPLYDEF]]]] 引数において
[CODE(SGML)[[[ELEMENT]] NO]] 以外の値が指定されていると、
要素型宣言を明示しなくてもよいことになります。
[6] 例えば、 [SAMP(SGML)[foo]] 要素が[[文書実現値]]で使われているものの、
[[DTD]] で宣言されていないとします。
このとき、 [SAMP(SGML)[]]
という宣言がなされていたものと仮定されます。
[CODE(SGML)[ELEMENT YES]] ではなく
[CODE(SGML)[ELEMENT ANYOTHER]] であった場合には、
更に[[直接再帰要素]]の禁止という制限が加わります。
[WEAK[(この制限は DTD では表現できません。 [[DTD記法]]を使わない場合には、 [CODE(SGML)[ANYOTHER]] 以外に実現方法はありません。)]]
直接再帰要素が禁止されていると、例えば、
[PRE[
]PRE]
は妥当ですが、
[PRE[
]PRE]
は不当です。
[7] [CODE(SGML)[ANYOTHER]] が有用なのは [CODE(SGML)[[[OMITTAG]] YES]] のときです。
このとき[[終了タグ]]が省略できるので、
[PRE[
- Something
- Something
- Something
]PRE]
を (暗示宣言だけで!) 実現できます。
[WEAK[([[充足タグ付き文書実現値]]になっています。)]]