#?SuikaWiki/0.9 [1] 【[[XML]]】 ある型の[[要素]]について、出現可能な[[子要素]]・子[[文字データ]]の種類とその順序を規定する単純な文法。 (, , 参照。) [2] [[要素内容]]モデル: - children = (choice / seq) [ occur ] ;; [47] - cp = (child-type / choice / seq) [ occur ] ;; [48] - choice = "(" [ [[S]] ] cp 1*( [ S ] "|" [ S ] cp) [ S ] ")" ;; [49] - seq = "(" [ S ] *( [ S ] "," [ S ] cp) [ S ] ")" ;; [50] - occur = "?" / "*" / "+" - child-type = Name ;; 子要素型名 [[混合内容]]モデル: - Mixed = "(" [S] '#PCDATA' *([S] "|" [S] child-type) [S] ")" "*" / "(" [S] '#PCDATA' [S] ")" [3] 非構文的制約: -[4] [決定的内容モデル] ある要素が内容モデル中の複数の要素型の指定に該当しうる時、[[互換性のため]]、これを[[誤り]]とする。 ([[決定的内容モデル]], [[SGML]] の言葉では[[曖昧でない内容モデル]]。) -[5] [群・引数実体が適当に入れ子になっていること] 開き括弧と閉じ括弧は同じ[[実体]]の[[置換文]]中になければなりません。 ([[妥当性制約]]) -[6] [引数実体中の群の完全性] [[相互運用性のため]]、 引数実体の置換文は1つ以上の非[[空白]]文字を含むべきです。 また、その最初及び最後の非空白文字は接続子 ([CODE(XML)[|]] / [CODE(XML)[,]]) ではないべきです。 -[7] [要素型の重複がないこと] 混合内容モデルでは、1つの要素型は1度しか出現しては行けません。 (妥当性制約) [8] >>4 に反する例: -[SAMP(XML)[ ( (b , c) | (b , d) ) ]] (正 [SAMP(XML)[ ( b , ( c | d ) ) ]]) - [11] [WEAK[2003-09-29 02:10:01 +00:00]] ''[[aaa]]'': aaa [[#comment]] [9] >>5 に反する例: -[SAMP(XML)[ ( %model; ]] [[#comment]] [10] >>6 に反する例: -[SAMP(XML)[]]; [SAMP(XML)[ ( %model; foo ) ]] -[SAMP(XML)[]]; [SAMP(XML)[ ( %model; foo ) ]] -[SAMP(XML)[]]; [SAMP(XML)[ ( bar %con; foo ) ]] [[#comment]]