<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子供</f>のことを、<dfn><f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><rubyb><anchor>内容</anchor><rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">content</rt></rubyb></f></dfn>ともいいます。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> <cite xml:lang="en-US-x-hixie">HTML Standard</cite> (<time>2017-09-16 15:17:26 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://html.spec.whatwg.org/#concept-element-content-model">https://html.spec.whatwg.org/#concept-element-content-model</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <cite xml:lang="en-US">ARIA in HTML</cite> (<time>2017-09-10 07:44:56 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://w3c.github.io/html-aria/#allowed-aria-roles-states-and-properties">https://w3c.github.io/html-aria/#allowed-aria-roles-states-and-properties</anchor-external></li></ul></refs></section><section><h1><dfn>要素の内容の適合性</dfn></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書の適合性</anchor>の要件に従って<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>を制作しなければなりません。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>においては、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</f>が、その制約に従わなければなりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> 原則として、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</f>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適用可能な仕様書</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>その他の制約に従わなければなりません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <code xmlns="http://www.w3.org/1999/xhtml">role</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>が指定されている場合、その<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の制約に加えて、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">役割</anchor>の制約も課されます。</comment-p></section><section><h1>内容モデル</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">content model</rt></rubyb></dfn> (<dfn>内容模型</dfn>) とは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>に関する制約、あるいはそれを記述する方法のことを言います。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>は、基本的にその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>を定義する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>で規定されています。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>は <cite>HTML Standard</cite> で規定されています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;55</anchor-internal></src>。</p><figure class="short list"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>の記述</figcaption><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素のカテゴリー</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル「なし」</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">透過内容モデル</anchor></li><li><code>ANY</code></li></ul></figure><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> 既に消失した内容モデル:<figure class="short list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">双形性内容モデル</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">半透過内容モデル</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ブロック水準要素</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行内要素</anchor></li></ul></figure></p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML4</anchor> から <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor> で大きな変更がありました。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML5</anchor> 内でも <time>2007年12月<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2007-12</attrvalue></time>に大きな変更がありました。</p></history><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ARIA</anchor> は <code>role</code> が明示的または暗示的に指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子孫</anchor>の
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML要素</anchor>の制約を定めています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;54</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ARIA</anchor> の <code>role</code> に関する規定は <cite>HTML Standard</cite> 
の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に関する規定を覆す道理はありませんから、
両者の制約が共に適用されると考えられます。 <code>role</code> の制約は多くの場合は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>で、
多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML要素</anchor>の内容の制約も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>ですから、
特に問題はありません。また<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">語句内容</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">テキスト</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>を持つ
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML要素</anchor>は、すべて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">部分集合</anchor>と考えられますから、
やはり問題はありません。 <code>role</code> の制約が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">語句内容</anchor>で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML要素</anchor>の制約が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">語句内容</anchor>または<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>の場合も、
問題はありません。それ以外に次のような場合があります。</p><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> 次の場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>本来が特別な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>を持ち、
<code>role</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>を求めるため、
両方の制約を満たす<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>はなくなります。<ul><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tr</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">row<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">role=row</title></anchor>&gt;</code></li><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">table</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">table<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">role=table</title></anchor>&gt;</code></li><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">tbody</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">row<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">role=rowgroup</title></anchor>&gt;</code> (または <code>thead</code>, <code>tfoot</code>)</li><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ul</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">list<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">role=list</title></anchor>&gt;</code> 
(または <code>ol</code>, <code>dl</code>, <code>menu</code>) 他幾つかの <code>role</code></li><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">select</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">listbox</anchor>&gt;</code> 他幾つかの <code>role</code></li><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">datalist</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">listbox</anchor>&gt;</code></li><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">optgroup</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">group<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">role=group</title></anchor>&gt;</code></li><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">svg</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">document<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">role=document</title></anchor>&gt;</code> 他幾つかの <code>role</code>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ARIA</anchor> の当該規定は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML要素</anchor>のみ適用されると考えれば問題なしだが...))</li><li><code>&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">math</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role</anchor>=<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">math<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">role=math</title></anchor>&gt;</code>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ARIA</anchor> の当該規定は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML要素</anchor>のみ適用されると考えれば問題なしだが...))</li></ul></li><li><code>figure</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に <code>role=figure</code>, <code>role=presentation</code>
が指定された場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>であることが求められますが、
<code>figcaption</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>ではないため、使えないことになります。</li><li><code>details</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に <code>role=group</code>
が指定された場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>であることが求められますが、
<code>summary</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>ではないため、使えないことになります。</li><li><code>fieldset</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に <code>role=group</code>, <code>role=presentation</code>
が指定された場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>であることが求められますが、
<code>legend</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>ではないため、使えないことになります。</li><li><code>video</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>や <code>audio</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に <code>role=application</code> 
が指定された場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>であることが求められますが、
<code>source</code> や <code>track</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>ではないため、使えないことになります。</li><li><code>object</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に <code>role=document</code> 他幾つかの <code>role</code>
が指定された場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>であることが求められますが、
<code>param</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>ではないため、使えないことになります。</li><li><code>div</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に <code>role=list</code> 他幾つかの <code>role</code>
が指定された場合で、 <code>dl</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>で使われている場合、
<code>dt</code> も <code>dd</code> も<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>ではないため、使えないことになります。</li><li><code>ruby</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に <code>role=list</code> 他幾つかの <code>role</code>
が指定された場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>であることが求められますが、
<code>rt</code>, <code>rp</code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>ではないため、使えないことになります。</li></ul><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ARIA</anchor> には <code xmlns="http://www.w3.org/1999/xhtml">role</code> による<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素のカテゴリー</anchor>の規定もあります
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素のカテゴリー</anchor>参照)。
これを文字通り適用すればこれらも見かけ上解決できる場合がありますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>の制約は破綻します。例えば
<code xmlns="http://www.w3.org/1999/xhtml">li</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>は <code xmlns="http://www.w3.org/1999/xhtml">role=presentation</code> 
を指定すると<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">フロー内容</anchor>になると解釈すれば、
<code xmlns="http://www.w3.org/1999/xhtml">&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ul</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role=list</anchor>&gt;&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">li</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role=presentation</anchor>&gt;</code>
は問題ないことになります。ところが同時に
<code xmlns="http://www.w3.org/1999/xhtml">&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">div</anchor>&gt;&lt;<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">li</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">role=presentation</anchor>&gt;</code>
も許されることになります。このような規則は誰も利しません。</comment-p></section><section><h1>閲覧文脈にない文書</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点文書</f>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</f>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">null</anchor> なら、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書の適合性</anchor>に関する規定は適用されません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Standard</anchor></src></p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点文書</f>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>中にない時、この条項が適用されます
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Standard</anchor></src>。つまりほとんどの場合 <code class="HTMLe" xml:lang="en">template</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の中身の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性値</anchor>の制約は適用されません。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> その場合であっても、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML構文</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML構文</anchor>の制約は適用されます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML Standard</anchor></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> この規定を文字通り適用すると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合検査器</anchor>が意味をなさなくなってしまいます。
また、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webブラウザー</anchor>が扱う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>と切り離された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>、
例えば <code>responseXML</code> や <code>new Document</code> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合性検査</anchor>ができなくなってしまいます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> また、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>にまったく何の検査もしないとすると、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合性検査</anchor>の主要な目的である<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>中のエラーを発見して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>を助けるという目的が十分に達成できない可能性があります。</p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> 例えば<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>に <code>a</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>がある場合、
その <code>href</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形</anchor>の時点では使われることがなく、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>が設定した上で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">挿入</anchor>するかもしれませんから、
<code>href</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>がないことで直ちにこれを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">不適合</anchor>とすると、不便です。
これが <cite>HTML Standard</cite> が適合性の規定を適用しないとする根拠と思われます。</p><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> しかし、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スクリプト</anchor>が <code>href</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>を設定するわけではなく、
単に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が指定し忘れただけの可能性もあります。
そうした<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>のミスを検出することが<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合性検査</anchor>の目的ですから、
<code>href</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">属性</anchor>の不存在を警告など何らかの形で表示する方が良いかもしれません。
意図的に省略している場合には、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">著者</anchor>が設定で警告の表示を抑制できるような機能があると良いでしょう。</p></example><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>は作成時は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>を持たないのですが、
これを <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">adopt</anchor> すると<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">閲覧文脈</anchor>に属する場合があります。
特殊ケースではありますが、 <code>template</code> 内であるにも関わらず<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合性検査</anchor>の対象となる場合があります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XSLTスタイルシート</anchor>では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>が <code>template</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子孫</anchor>であるものとして処理されることになっています。
すると<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XSLTスタイルシート</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">適合性検査</anchor>のときは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XSLT</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">仕様書</anchor>の規定に従って検査するべきだということになります。</p></section><section><h1>雛形内容</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <code class="HTMLe" xml:lang="en">template</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>は、通常の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>とは別に、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>を持ちます。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> 普通、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>等の制約が適用されません (<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal>)。</p><history xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> 2016年7月までは <code class="HTMLe" xml:lang="en">template</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>においては<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">雛形内容</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</f>であると定められていました。</p></history></section><section><h1>影木</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">影木</anchor>が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">attach<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">attachShadow</title></anchor> されている場合、
通常の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>とは別に、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">影木</anchor>を持ちます。通常の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>も、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スロット</anchor>の割り当て関係を持つことがあります。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">影木</anchor>、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">スロット</anchor>を参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> 普通、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">影木</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">光木</anchor>と同じ<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">節点文書</f>に属しますから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>等の制約は等しく適用されます。</p></section><section><h1>歴史</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>の種別の歴史は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素の分類</anchor>を参照。</p><section><h1>SGML / XML</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>という語が使われています。語源としては
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>に由来していますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTML</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DTD</anchor> を採用しておらず、実態は大きく異なっています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> </p><blockquote><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文書</anchor>の中で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">開始タグ</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">終了タグ</anchor>との間に出現する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字</anchor>。 Content。</p><p>備考1. その文字は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">真の部分要素</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">天下部分要素</anchor>, その他の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク</anchor>又はこれらが混在したものとして解釈される。</p><p>備考2. 要素が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">明示内容参照</anchor>又はその<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">宣言済み内容</anchor>が <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EMPTY</anchor></code> ならば、内容は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空</anchor>である。
その場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>自身が内容のデータを生成してもよい。 <ins>(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JISX4151</anchor>‐1992 定義 (189))</ins></p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> JIS X 4151‐1992 6.6 に詳しい定義があります。</p><ul><li><code class="ABNF"><dfn>内容</dfn> := [ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">混合内容</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">置換可能文字データ</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字データ</anchor> ] ;; (24)</code></li><li><code class="ABNF"><dfn>混合内容</dfn> := *(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">データ文字</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">他の内容</anchor>) ;; (25)</code></li><li><code class="ABNF"><dfn>要素内容</dfn> := *(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">他の内容</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">s</anchor>) ;; (26)</code></li><li><code class="ABNF"><dfn>他の内容</dfn> := <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">注釈宣言</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">短縮参照使用宣言</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">連結集合使用宣言</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">処理指令</anchor> / <code class="SGML"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">shortref</anchor></code> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字参照</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">一般実体参照</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク区間宣言</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Ee</anchor> ;; (27)</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク区間</anchor>の「内容」とは何か?
→<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">マーク区間</anchor>参照。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> における<dfn><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">content model</rt></rubyb></dfn>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>についての制約を記述する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素宣言</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>(群)です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> </p><blockquote><dl><dt>内容モデル (content model)</dt><dd>
許容できる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容</anchor>を定義する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モデル群</anchor>及び<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>を指定する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素宣言</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">JIS X 4151</anchor>‐1992 3. (192))</dd></dl></blockquote><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <code class="ABNF"><dfn>内容モデル</dfn> := (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モデル群</anchor> / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ANY</anchor>) [1*<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ps</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor> ] ;; (126)</code></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> <code class="ABNF"><dfn>例外</dfn> := (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">排除要素</anchor> [1*ps 添加要素]) / <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">添加要素</anchor> ;; (138)</code></li></ul><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> </p><blockquote><p>ある型の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>について、
出現可能な<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子要素</anchor>・子<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字データ</anchor>の種類とその順序を規定する単純な文法。
(<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/REC-xml#dt-content-model">http://www.w3.org/TR/REC-xml#dt-content-model</anchor-external>, 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/REC-xml#sec-mixed-content">http://www.w3.org/TR/REC-xml#sec-mixed-content</anchor-external>,
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/REC-xml#determinism">http://www.w3.org/TR/REC-xml#determinism</anchor-external> を参照。)</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容</anchor>モデル:<ul><li>children = (choice / seq) [ occur ] ;; [47]</li><li>cp = (child-type / choice / seq) [ occur ] ;; [48]</li><li>choice = &quot;(&quot; [ <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">S</anchor> ] cp 1*( [ S ] &quot;|&quot; [ S ] cp) [ S ] &quot;)&quot; ;; [49]</li><li>seq = &quot;(&quot; [ S ] *( [ S ] &quot;,&quot; [ S ] cp) [ S ] &quot;)&quot; ;; [50]</li><li>occur = &quot;?&quot; / &quot;*&quot; / &quot;+&quot;</li><li>child-type = Name ;; 子要素型名</li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">混合内容</anchor>モデル:<ul><li>Mixed = &quot;(&quot; [S] '#PCDATA' *([S] &quot;|&quot; [S] child-type) [S] &quot;)&quot; &quot;*&quot; / &quot;(&quot; [S] '#PCDATA' [S] &quot;)&quot;</li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モデル群</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>のことを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>と呼んでいるようです。
<code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CDATA</anchor></code> などの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キーワード</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>と呼ばないようですが、
<code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ANY</anchor></code> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>と呼ばれることもあり、
その指す範囲は必ずしも明確ではありません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> では、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容</anchor>における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モデル群</anchor>のことを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>と定義しています
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;122</anchor-internal></src>。 <code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EMPTY</anchor></code> などの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キーワード</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">混合内容</anchor>における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モデル群</anchor>はこの定義から除外されています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> 一般的には、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>という語の指す範囲は文脈にも依存しますが、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容</anchor>でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">混合内容</anchor>でも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モデル群</anchor>を総称して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>と呼ぶことが多いようです。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キーワード</anchor>をも<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>に含めることもよくあります。</p><figure class="railroad"><ol><li>|<ol><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キーワード</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モデル群</anchor></li></ol></li><li>?<ol><li>+<ol><li><code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ps</anchor></code></li></ol></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor></li></ol></li></ol></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> (広義の)<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>として利用できる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キーワード</anchor>には、
次のものがあります。<figure class="short list"><ul><li><code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CDATA</anchor></code></li><li><code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RCDATA</anchor></code></li><li><code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EMPTY</anchor></code></li><li><code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ANY</anchor></code></li></ul></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> で利用できるのは、 <code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">EMPTY</anchor></code> と
<code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ANY</anchor></code> だけです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;122</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>では、 <code class="SGML" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ANY</anchor></code>
の場合と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">モデル群</anchor>の場合に、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>をも指定できます。それ以外の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">キーワード</anchor>の時には、
指定できません。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>を参照。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">例外</anchor>は指定できません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 非構文的制約:<ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[104]</anchor-end> [決定的内容モデル] ある要素が内容モデル中の複数の要素型の指定に該当しうる時、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">互換性のため</anchor>、これを<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">誤り</anchor>とする。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">決定的内容モデル</anchor>, <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> の言葉では<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">曖昧でない内容モデル</anchor>。)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[105]</anchor-end> [群・引数実体が適当に入れ子になっていること] 開き括弧と閉じ括弧は同じ<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">置換文</anchor>中になければなりません。 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">妥当性制約</anchor>)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[106]</anchor-end> [引数実体中の群の完全性] <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">相互運用性のため</anchor>、
引数実体の置換文は1つ以上の非<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空白</anchor>文字を含むべきです。
また、その最初及び最後の非空白文字は接続子 (<code class="XML">|</code> / <code class="XML">,</code>)
ではないべきです。</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> [要素型の重複がないこと] 混合内容モデルでは、1つの要素型は1度しか出現しては行けません。 (妥当性制約)</li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="104" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;104</anchor-internal> に反する例:<ul><li><samp class="XML">  ( (b , c) | (b , d) )  </samp> (正 <samp class="XML">  ( b , ( c | d ) )  </samp>)</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2003-09-29 02:10:01 +00:00</weak> <em><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">aaa</anchor></em>: aaa
<form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="105" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;105</anchor-internal> に反する例:<ul><li><samp class="XML"> ( %model; </samp>
<form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="106" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;106</anchor-internal> に反する例:<ul><li><samp class="XML">&lt;!ENTITY % model &quot;   &quot;&gt;</samp>; <samp class="XML"> ( %model; foo ) </samp></li><li><samp class="XML">&lt;!ENTITY % model &quot; bar | &quot;&gt;</samp>; <samp class="XML"> ( %model; foo ) </samp></li><li><samp class="XML">&lt;!ENTITY % con &quot; | &quot;&gt;</samp>; <samp class="XML"> ( bar %con; foo ) </samp></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SGML</anchor> や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML</anchor> における<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容モデル</anchor>の分類:<figure class="short list"><ul><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">宣言内容</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">混合内容</anchor></li><li><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">空要素</anchor></li></ul></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> </p><blockquote><dl><dt><rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容模型<rt xmlns="http://www.w3.org/1999/xhtml">content model</rt></rubyb></dt><dd>
ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素型</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実現値</anchor>中で認められると宣言されたマーク構造。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XML 1.0</anchor> は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素内容</anchor>だけを含む (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字データ</anchor>なしの)
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">混合内容</anchor> 
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字データ</anchor>に加えて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">子要素</anchor>を散在させられる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要素</anchor>)
の2種類に分けています。後者は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容</anchor>の規定が
<code class="XML">#<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PCDATA</anchor></code> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">文字データ</anchor>を表します。)
で始まります。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">XHTML m12n Term、<anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="151" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;151</anchor-internal></src></dd></dl></blockquote><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="122" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[122]</anchor-end> <cite xml:lang="EN">Extensible Markup Language (XML) 1.0 (Fifth Edition)</cite> (<time>2013-05-29 05:49:56 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xml/#elemdecls">http://www.w3.org/TR/xml/#elemdecls</anchor-external></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">XHTML m12n</anchor><ul><li>[XHTML m12n Term] <csection xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2. Terms and Definitions</csection>
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="XHTML1m12n:&quot;terms.html#a_terms&quot;">IW:XHTML1m12n:&quot;terms.html#a_terms&quot;</anchor-external></li></ul></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="151" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[151]</anchor-end> <cite xml:lang="en">XHTML™ 2.0 - Terms and Definitions</cite> (<time>2010-12-17 00:44:37 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/2010/NOTE-xhtml2-20101216/terms.html">http://www.w3.org/TR/2010/NOTE-xhtml2-20101216/terms.html</anchor-external></li></ul></refs><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[114]</anchor-end> <em>要素字句とパラメタ実体参照 - 2003年12月 - マーク付けノート</em> 
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.satoshii.org/markup/notes/2003/12#date12-3">http://www.satoshii.org/markup/notes/2003/12#date12-3</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="115" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[115]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;114</anchor-internal> は、 
<samp class="SGML">&lt;!<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ENTITY</anchor> % foo &quot;foo&quot;&gt; &lt;!ELEMENT bar (%foo;+)&gt;</samp> 
のように<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">出現標識</anchor>が別の実体に分断されていてはいけないという話。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="114" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;114</anchor-internal>-115</p><blockquote><p>直接内容モデルに <code>%baz.qname;+</code> 
と記述すればエラーになることに注意して下さい。</p><p>ちなみに、XML にはこの辺りの規則についての明確な記述はありません。
何らかのエラーになるのは間違いありませんが、invalid なのか 
not well-formed なのかも判然としない状態です。</p></blockquote><p>という話の答えが今更ながら判った気がするので書いてみます。</p><blockquote><p>When a parameter-entity reference is recognized in the DTD 
and included, its replacement text MUST be enlarged by the 
attachment of one leading and one following space (#x20) 
character; the intent is to constrain the replacement text of 
parameter entities to contain an integral number of 
grammatical tokens in the DTD.
(XML 4.4.8 Included as PE <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/REC-xml/#as-PE">http://www.w3.org/TR/REC-xml/#as-PE</anchor-external>,
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/xml11/#as-PE">http://www.w3.org/TR/xml11/#as-PE</anchor-external>)</p></blockquote><p>という規定 <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">(XML にだけあって SGML にはない。)</weak>
に従えば、 <samp class="XML">%baz.qname;+</samp>
は引数実体参照を展開すると <samp class="XML">baz +</samp> のようになります。</p><p>これは 48 番の生成規則
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/TR/REC-xml/#NT-cp">http://www.w3.org/TR/REC-xml/#NT-cp</anchor-external> に違反します。
ですから非<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整形式</anchor>になります。</p><hr></hr><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> バリエーションのようなものとして、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HyTime</anchor> は <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HyLex</anchor> を規定していました。</p></section><section><h1>WF2</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en-US">XBL 2.0</cite>
( (<time>2012-05-03 02:23:03 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://dev.w3.org/2006/xbl2/Overview.html#xbl-elements">http://dev.w3.org/2006/xbl2/Overview.html#xbl-elements</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <cite xml:lang="en">Allow anything in &lt;template&gt; for document conformance</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">zcorpan</anchor>著, <time>2016-07-08 03:42:26 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/whatwg/html/commit/950d3015bead974bec1d7d86c00d641655ea0b66">https://github.com/whatwg/html/commit/950d3015bead974bec1d7d86c00d641655ea0b66</anchor-external></p></section></section></body></html>