- From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 28 Feb 2011 23:56:34 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/spec
In directory hutz:/tmp/cvs-serv364
Modified Files:
Overview.html
Log Message:
Change how MathML and SVG are parsed in text/html: use a three-level tree constructor design instead of the two-level design we had before. (whatwg r5920)
Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.4760
retrieving revision 1.4761
diff -u -d -r1.4760 -r1.4761
--- Overview.html 28 Feb 2011 22:16:27 -0000 1.4760
+++ Overview.html 28 Feb 2011 23:56:29 -0000 1.4761
@@ -1238,29 +1238,31 @@
<li><a href="#creating-and-inserting-elements"><span class="secno">8.2.5.1 </span>Creating and inserting elements</a></li>
<li><a href="#closing-elements-that-have-implied-end-tags"><span class="secno">8.2.5.2 </span>Closing elements that have implied end tags</a></li>
<li><a href="#foster-parenting"><span class="secno">8.2.5.3 </span>Foster parenting</a></li>
- <li><a href="#the-initial-insertion-mode"><span class="secno">8.2.5.4 </span>The "initial" insertion mode</a></li>
- <li><a href="#the-before-html-insertion-mode"><span class="secno">8.2.5.5 </span>The "before html" insertion mode</a></li>
- <li><a href="#the-before-head-insertion-mode"><span class="secno">8.2.5.6 </span>The "before head" insertion mode</a></li>
- <li><a href="#parsing-main-inhead"><span class="secno">8.2.5.7 </span>The "in head" insertion mode</a></li>
- <li><a href="#parsing-main-inheadnoscript"><span class="secno">8.2.5.8 </span>The "in head noscript" insertion mode</a></li>
- <li><a href="#the-after-head-insertion-mode"><span class="secno">8.2.5.9 </span>The "after head" insertion mode</a></li>
- <li><a href="#parsing-main-inbody"><span class="secno">8.2.5.10 </span>The "in body" insertion mode</a></li>
- <li><a href="#parsing-main-incdata"><span class="secno">8.2.5.11 </span>The "text" insertion mode</a></li>
- <li><a href="#parsing-main-intable"><span class="secno">8.2.5.12 </span>The "in table" insertion mode</a></li>
- <li><a href="#parsing-main-intabletext"><span class="secno">8.2.5.13 </span>The "in table text" insertion mode</a></li>
- <li><a href="#parsing-main-incaption"><span class="secno">8.2.5.14 </span>The "in caption" insertion mode</a></li>
- <li><a href="#parsing-main-incolgroup"><span class="secno">8.2.5.15 </span>The "in column group" insertion mode</a></li>
- <li><a href="#parsing-main-intbody"><span class="secno">8.2.5.16 </span>The "in table body" insertion mode</a></li>
- <li><a href="#parsing-main-intr"><span class="secno">8.2.5.17 </span>The "in row" insertion mode</a></li>
- <li><a href="#parsing-main-intd"><span class="secno">8.2.5.18 </span>The "in cell" insertion mode</a></li>
- <li><a href="#parsing-main-inselect"><span class="secno">8.2.5.19 </span>The "in select" insertion mode</a></li>
- <li><a href="#parsing-main-inselectintable"><span class="secno">8.2.5.20 </span>The "in select in table" insertion mode</a></li>
- <li><a href="#parsing-main-inforeign"><span class="secno">8.2.5.21 </span>The "in foreign content" insertion mode</a></li>
- <li><a href="#parsing-main-afterbody"><span class="secno">8.2.5.22 </span>The "after body" insertion mode</a></li>
- <li><a href="#parsing-main-inframeset"><span class="secno">8.2.5.23 </span>The "in frameset" insertion mode</a></li>
- <li><a href="#parsing-main-afterframeset"><span class="secno">8.2.5.24 </span>The "after frameset" insertion mode</a></li>
- <li><a href="#the-after-after-body-insertion-mode"><span class="secno">8.2.5.25 </span>The "after after body" insertion mode</a></li>
- <li><a href="#the-after-after-frameset-insertion-mode"><span class="secno">8.2.5.26 </span>The "after after frameset" insertion mode</a></ol></li>
+ <li><a href="#parsing-main-inhtml"><span class="secno">8.2.5.4 </span>The rules for parsing tokens in HTML content</a>
+ <ol>
+ <li><a href="#the-initial-insertion-mode"><span class="secno">8.2.5.4.1 </span>The "initial" insertion mode</a></li>
+ <li><a href="#the-before-html-insertion-mode"><span class="secno">8.2.5.4.2 </span>The "before html" insertion mode</a></li>
+ <li><a href="#the-before-head-insertion-mode"><span class="secno">8.2.5.4.3 </span>The "before head" insertion mode</a></li>
+ <li><a href="#parsing-main-inhead"><span class="secno">8.2.5.4.4 </span>The "in head" insertion mode</a></li>
+ <li><a href="#parsing-main-inheadnoscript"><span class="secno">8.2.5.4.5 </span>The "in head noscript" insertion mode</a></li>
+ <li><a href="#the-after-head-insertion-mode"><span class="secno">8.2.5.4.6 </span>The "after head" insertion mode</a></li>
+ <li><a href="#parsing-main-inbody"><span class="secno">8.2.5.4.7 </span>The "in body" insertion mode</a></li>
+ <li><a href="#parsing-main-incdata"><span class="secno">8.2.5.4.8 </span>The "text" insertion mode</a></li>
+ <li><a href="#parsing-main-intable"><span class="secno">8.2.5.4.9 </span>The "in table" insertion mode</a></li>
+ <li><a href="#parsing-main-intabletext"><span class="secno">8.2.5.4.10 </span>The "in table text" insertion mode</a></li>
+ <li><a href="#parsing-main-incaption"><span class="secno">8.2.5.4.11 </span>The "in caption" insertion mode</a></li>
+ <li><a href="#parsing-main-incolgroup"><span class="secno">8.2.5.4.12 </span>The "in column group" insertion mode</a></li>
+ <li><a href="#parsing-main-intbody"><span class="secno">8.2.5.4.13 </span>The "in table body" insertion mode</a></li>
+ <li><a href="#parsing-main-intr"><span class="secno">8.2.5.4.14 </span>The "in row" insertion mode</a></li>
+ <li><a href="#parsing-main-intd"><span class="secno">8.2.5.4.15 </span>The "in cell" insertion mode</a></li>
+ <li><a href="#parsing-main-inselect"><span class="secno">8.2.5.4.16 </span>The "in select" insertion mode</a></li>
+ <li><a href="#parsing-main-inselectintable"><span class="secno">8.2.5.4.17 </span>The "in select in table" insertion mode</a></li>
+ <li><a href="#parsing-main-afterbody"><span class="secno">8.2.5.4.18 </span>The "after body" insertion mode</a></li>
+ <li><a href="#parsing-main-inframeset"><span class="secno">8.2.5.4.19 </span>The "in frameset" insertion mode</a></li>
+ <li><a href="#parsing-main-afterframeset"><span class="secno">8.2.5.4.20 </span>The "after frameset" insertion mode</a></li>
+ <li><a href="#the-after-after-body-insertion-mode"><span class="secno">8.2.5.4.21 </span>The "after after body" insertion mode</a></li>
+ <li><a href="#the-after-after-frameset-insertion-mode"><span class="secno">8.2.5.4.22 </span>The "after after frameset" insertion mode</a></ol></li>
+ <li><a href="#parsing-main-inforeign"><span class="secno">8.2.5.5 </span>The rules for parsing tokens in foreign content</a></ol></li>
<li><a href="#the-end"><span class="secno">8.2.6 </span>The end</a></li>
<li><a href="#coercing-an-html-dom-into-an-infoset"><span class="secno">8.2.7 </span>Coercing an HTML DOM into an infoset</a></li>
<li><a href="#an-introduction-to-error-handling-and-strange-cases-in-the-parser"><span class="secno">8.2.8 </span>An introduction to error handling and strange cases in the parser</a>
@@ -55752,12 +55754,16 @@
"<a href="#the-before-html-insertion-mode" title="insertion mode: before html">before html</a>",
"<a href="#the-before-head-insertion-mode" title="insertion mode: before head">before head</a>",
"<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>", "<a href="#parsing-main-inheadnoscript" title="insertion mode: in head noscript">in head noscript</a>",
- "<a href="#the-after-head-insertion-mode" title="insertion mode: after head">after head</a>", "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>", "<a href="#parsing-main-incdata" title="insertion mode: text">text</a>",
- "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>", "<a href="#parsing-main-intabletext" title="insertion mode: in table text">in table text</a>", "<a href="#parsing-main-incaption" title="insertion mode: in caption">in caption</a>", "<a href="#parsing-main-incolgroup" title="insertion mode: in column group">in column group</a>",
- "<a href="#parsing-main-intbody" title="insertion mode: in table body">in table body</a>",
- "<a href="#parsing-main-intr" title="insertion mode: in row">in row</a>", "<a href="#parsing-main-intd" title="insertion mode: in cell">in cell</a>", "<a href="#parsing-main-inselect" title="insertion mode: in select">in select</a>", "<a href="#parsing-main-inselectintable" title="insertion mode: in select in table">in select in
- table</a>", "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in
- foreign content</a>", "<a href="#parsing-main-afterbody" title="insertion mode: after
+ "<a href="#the-after-head-insertion-mode" title="insertion mode: after head">after head</a>", "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>", "<a href="#parsing-main-incdata" title="insertion mode: text">text</a>", "<a href="#parsing-main-intable" title="insertion
+ mode: in table">in table</a>", "<a href="#parsing-main-intabletext" title="insertion mode: in
+ table text">in table text</a>", "<a href="#parsing-main-incaption" title="insertion mode: in
+ caption">in caption</a>", "<a href="#parsing-main-incolgroup" title="insertion mode: in column
+ group">in column group</a>", "<a href="#parsing-main-intbody" title="insertion mode: in
+ table body">in table body</a>", "<a href="#parsing-main-intr" title="insertion mode: in
+ row">in row</a>", "<a href="#parsing-main-intd" title="insertion mode: in cell">in
+ cell</a>", "<a href="#parsing-main-inselect" title="insertion mode: in select">in
+ select</a>", "<a href="#parsing-main-inselectintable" title="insertion mode: in select in table">in
+ select in table</a>", "<a href="#parsing-main-afterbody" title="insertion mode: after
body">after body</a>", "<a href="#parsing-main-inframeset" title="insertion mode: in
frameset">in frameset</a>", "<a href="#parsing-main-afterframeset" title="insertion mode: after
frameset">after frameset</a>", "<a href="#the-after-after-body-insertion-mode" title="insertion mode:
@@ -55862,12 +55868,6 @@
non-null when we're going through these steps, we'll need to
uncomment out the commented-out bits -->
- <li>If <var title="">node</var> is an element from the <a href="#mathml-namespace">MathML
- namespace</a> or the <a href="#svg-namespace">SVG namespace</a>, then switch the
- <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in
- foreign content">in foreign content</a>" and abort these
- steps.</li>
-
<li>If <var title="">last</var> is true, then switch the
<a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inbody" title="insertion mode: in
body">in body</a>" and abort these steps. (<a href="#fragment-case">fragment
@@ -57472,11 +57472,10 @@
case-insensitive</a> match for the word "DOCTYPE", then consume
those characters and switch to the <a href="#doctype-state">DOCTYPE state</a>.</p>
- <p>Otherwise, if the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
- content</a>" and the <a href="#current-node">current node</a> is not an element
- in the <a href="#html-namespace-0">HTML namespace</a> and the next seven characters are
- an <a href="#case-sensitive">case-sensitive</a> match for the string "[CDATA[" (the
- five uppercase letters "CDATA" with a U+005B LEFT SQUARE BRACKET
+ <p>Otherwise, if the <a href="#current-node">current node</a> is not an element in
+ the <a href="#html-namespace-0">HTML namespace</a> and the next seven characters are an
+ <a href="#case-sensitive">case-sensitive</a> match for the string "[CDATA[" (the five
+ uppercase letters "CDATA" with a U+005B LEFT SQUARE BRACKET
character before and after), then consume those characters and
switch to the <a href="#cdata-section-state">CDATA section state</a>.</p>
@@ -58375,11 +58374,44 @@
has to render the <code><a href="#document">Document</a></code> so that it is available to
the user, or when it has to begin accepting user input.</p>
- <p>As each token is emitted from the tokenizer, the user agent must
- process the token according to the rules given in the section
- corresponding to the current <a href="#insertion-mode">insertion mode</a>.</p>
+ <hr><p>As each token is emitted from the tokenizer, the user agent must
+ follow the appropriate steps from the following list:</p>
- <p>When the steps below require the UA to <dfn id="insert-a-character">insert a
+ <dl class="switch"><dt>If there is no <a href="#current-node">current node</a></dt>
+ <dt>If the <a href="#current-node">current node</a> is an element in the <a href="#html-namespace-0">HTML namespace</a></dt>
+ <dt>If the <a href="#current-node">current node</a> is a <a href="#mathml-text-integration-point">MathML text integration point</a> and the token is a start tag whose tag name is neither "mglyph" nor "malignmark"</dt>
+ <dt>If the <a href="#current-node">current node</a> is an <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> and the token is a start tag whose tag name is "svg"</dt>
+ <dt>If the <a href="#current-node">current node</a> is an <a href="#html-integration-point">HTML integration point</a> and the token is a start tag</dt>
+ <dt>If the <a href="#current-node">current node</a> is an <a href="#html-integration-point">HTML integration point</a> and the token is a character token</dt>
+ <dt>If the token is an end-of-file token</dt>
+
+ <dd>Process the token according to the rules given in the section
+ corresponding to the current <a href="#insertion-mode">insertion mode</a> in HTML
+ content.</dd>
+
+ <dt>Otherwise</dt>
+
+ <dd>Process the token according to the rules given in the section
+ for parsing tokens <a href="#parsing-main-inforeign" title="insertion mode: in foreign
+ content">in foreign content</a>.</dd>
+
+ </dl><p>The <a href="#current-node">current node</a> is a <dfn id="mathml-text-integration-point">MathML text
+ integration point</dfn> if it is one of the following elements:</p>
+
+ <ul class="brief"><li>An <code title="">mi</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
+ <li>An <code title="">mo</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
+ <li>An <code title="">mn</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
+ <li>An <code title="">ms</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
+ <li>An <code title="">mtext</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
+ </ul><p>The <a href="#current-node">current node</a> is an <dfn id="html-integration-point">HTML
+ integration point</dfn> if it is one of the following elements:</p>
+
+ <ul class="brief"><li>An <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">text/html</code>"</li>
+ <li>An <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">application/xhtml+xml</code>"</li>
+ <li>A <code title="">foreignObject</code> element in the <a href="#svg-namespace">SVG namespace</a></li>
+ <li>A <code title="">desc</code> element in the <a href="#svg-namespace">SVG namespace</a></li>
+ <li>A <code title="">title</code> element in the <a href="#svg-namespace">SVG namespace</a></li>
+ </ul><hr><p>When the steps below require the UA to <dfn id="insert-a-character">insert a
character</dfn> into a node, if that node has a child immediately
before where the character is to be inserted, and that child is a
<code><a href="#text">Text</a></code> node, then the character must be appended to that
@@ -58671,10 +58703,12 @@
- <h5 id="the-initial-insertion-mode"><span class="secno">8.2.5.4 </span>The "<dfn title="insertion mode: initial">initial</dfn>" insertion mode</h5>
+ <h5 id="parsing-main-inhtml"><span class="secno">8.2.5.4 </span>The rules for parsing tokens in HTML content</h5>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#the-initial-insertion-mode" title="insertion
- mode: initial">initial</a>", tokens must be handled as follows:</p>
+
+ <h6 id="the-initial-insertion-mode"><span class="secno">8.2.5.4.1 </span>The "<dfn title="insertion mode: initial">initial</dfn>" insertion mode</h6>
+
+ <p>When the user agent is to apply the rules for the "<a href="#the-initial-insertion-mode" title="insertion mode: initial">initial</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
@@ -58865,10 +58899,9 @@
</dd>
- </dl><h5 id="the-before-html-insertion-mode"><span class="secno">8.2.5.5 </span>The "<dfn title="insertion mode: before html">before html</dfn>" insertion mode</h5>
+ </dl><h6 id="the-before-html-insertion-mode"><span class="secno">8.2.5.4.2 </span>The "<dfn title="insertion mode: before html">before html</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#the-before-html-insertion-mode" title="insertion
- mode: before html">before html</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#the-before-html-insertion-mode" title="insertion mode: before html">before html</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A DOCTYPE token</dt>
<dd>
@@ -58949,10 +58982,9 @@
as described in the next section.</p>
- <h5 id="the-before-head-insertion-mode"><span class="secno">8.2.5.6 </span>The "<dfn title="insertion mode: before head">before head</dfn>" insertion mode</h5>
+ <h6 id="the-before-head-insertion-mode"><span class="secno">8.2.5.4.3 </span>The "<dfn title="insertion mode: before head">before head</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#the-before-head-insertion-mode" title="insertion
- mode: before head">before head</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#the-before-head-insertion-mode" title="insertion mode: before head">before head</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
@@ -59015,10 +59047,9 @@
</dd>
- </dl><h5 id="parsing-main-inhead"><span class="secno">8.2.5.7 </span>The "<dfn title="insertion mode: in head">in head</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-inhead"><span class="secno">8.2.5.4.4 </span>The "<dfn title="insertion mode: in head">in head</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inhead" title="insertion
- mode: in head">in head</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inhead" title="insertion mode: in head">in head</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
@@ -59182,10 +59213,9 @@
</dd>
- </dl><h5 id="parsing-main-inheadnoscript"><span class="secno">8.2.5.8 </span>The "<dfn title="insertion mode: in head noscript">in head noscript</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-inheadnoscript"><span class="secno">8.2.5.4.5 </span>The "<dfn title="insertion mode: in head noscript">in head noscript</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inheadnoscript" title="insertion
- mode: in head noscript">in head noscript</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inheadnoscript" title="insertion mode: in head noscript">in head noscript</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A DOCTYPE token</dt>
<dd>
@@ -59243,10 +59273,9 @@
</dd>
- </dl><h5 id="the-after-head-insertion-mode"><span class="secno">8.2.5.9 </span>The "<dfn title="insertion mode: after head">after head</dfn>" insertion mode</h5>
+ </dl><h6 id="the-after-head-insertion-mode"><span class="secno">8.2.5.4.6 </span>The "<dfn title="insertion mode: after head">after head</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#the-after-head-insertion-mode" title="insertion
- mode: after head">after head</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#the-after-head-insertion-mode" title="insertion mode: after head">after head</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
@@ -59334,10 +59363,9 @@
token.</p>
</dd>
- </dl><h5 id="parsing-main-inbody"><span class="secno">8.2.5.10 </span>The "<dfn title="insertion mode: in body">in body</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-inbody"><span class="secno">8.2.5.4.7 </span>The "<dfn title="insertion mode: in body">in body</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inbody" title="insertion
- mode: in body">in body</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is U+0000 NULL</dt>
<dd>
@@ -60500,11 +60528,6 @@
elements</a> and <a href="#acknowledge-self-closing-flag" title="acknowledge self-closing
flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
- <p>Otherwise, if the <a href="#insertion-mode">insertion mode</a> is not already
- "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
- content</a>", switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
- content</a>".</p>
-
</dd>
<dt>A start tag whose tag name is "svg"</dt>
@@ -60534,11 +60557,6 @@
elements</a> and <a href="#acknowledge-self-closing-flag" title="acknowledge self-closing
flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
- <p>Otherwise, if the <a href="#insertion-mode">insertion mode</a> is not already
- "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
- content</a>", switch the <a href="#insertion-mode">insertion mode</a> to "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
- content</a>".</p>
-
</dd>
<dt>A start <!--or end--> tag whose tag name is one of: "caption",
@@ -60607,10 +60625,9 @@
</ol></dd>
- </dl><h5 id="parsing-main-incdata"><span class="secno">8.2.5.11 </span>The "<dfn title="insertion mode: text">text</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-incdata"><span class="secno">8.2.5.4.8 </span>The "<dfn title="insertion mode: text">text</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-incdata" title="insertion
- mode: text">text</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-incdata" title="insertion mode: text">text</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token</dt>
<dd>
@@ -60760,10 +60777,9 @@
</dd>
- </dl><h5 id="parsing-main-intable"><span class="secno">8.2.5.12 </span>The "<dfn title="insertion mode: in table">in table</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-intable"><span class="secno">8.2.5.4.9 </span>The "<dfn title="insertion mode: in table">in table</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-intable" title="insertion
- mode: in table">in table</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intable" title="insertion mode: in table">in table</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token</dt>
<dd>
@@ -60964,11 +60980,9 @@
- <h5 id="parsing-main-intabletext"><span class="secno">8.2.5.13 </span>The "<dfn title="insertion mode: in table text">in table text</dfn>" insertion mode</h5>
+ <h6 id="parsing-main-intabletext"><span class="secno">8.2.5.4.10 </span>The "<dfn title="insertion mode: in table text">in table text</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-intabletext" title="insertion
- mode: in table text">in table text</a>", tokens must be handled
- as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intabletext" title="insertion mode: in table text">in table text</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is U+0000 NULL</dt>
<dd>
@@ -61007,10 +61021,9 @@
</dd>
- </dl><h5 id="parsing-main-incaption"><span class="secno">8.2.5.14 </span>The "<dfn title="insertion mode: in caption">in caption</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-incaption"><span class="secno">8.2.5.4.11 </span>The "<dfn title="insertion mode: in caption">in caption</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-incaption" title="insertion
- mode: in caption">in caption</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-incaption" title="insertion mode: in caption">in caption</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>An end tag whose tag name is "caption"</dt>
<dd>
@@ -61065,10 +61078,9 @@
mode</a>.</p>
</dd>
- </dl><h5 id="parsing-main-incolgroup"><span class="secno">8.2.5.15 </span>The "<dfn title="insertion mode: in column group">in column group</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-incolgroup"><span class="secno">8.2.5.4.12 </span>The "<dfn title="insertion mode: in column group">in column group</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-incolgroup" title="insertion
- mode: in column group">in column group</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-incolgroup" title="insertion mode: in column group">in column group</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
@@ -61152,10 +61164,9 @@
</dd>
- </dl><h5 id="parsing-main-intbody"><span class="secno">8.2.5.16 </span>The "<dfn title="insertion mode: in table body">in table body</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-intbody"><span class="secno">8.2.5.4.13 </span>The "<dfn title="insertion mode: in table body">in table body</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-intbody" title="insertion
- mode: in table body">in table body</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intbody" title="insertion mode: in table body">in table body</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A start tag whose tag name is "tr"</dt>
<dd>
@@ -61241,10 +61252,9 @@
case</a>.</p>
- <h5 id="parsing-main-intr"><span class="secno">8.2.5.17 </span>The "<dfn title="insertion mode: in row">in row</dfn>" insertion mode</h5>
+ <h6 id="parsing-main-intr"><span class="secno">8.2.5.4.14 </span>The "<dfn title="insertion mode: in row">in row</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-intr" title="insertion
- mode: in row">in row</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intr" title="insertion mode: in row">in row</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A start tag whose tag name is one of: "th", "td"</dt>
<dd>
@@ -61332,10 +61342,9 @@
case</a>.</p>
- <h5 id="parsing-main-intd"><span class="secno">8.2.5.18 </span>The "<dfn title="insertion mode: in cell">in cell</dfn>" insertion mode</h5>
+ <h6 id="parsing-main-intd"><span class="secno">8.2.5.4.15 </span>The "<dfn title="insertion mode: in cell">in cell</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-intd" title="insertion
- mode: in cell">in cell</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-intd" title="insertion mode: in cell">in cell</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>An end tag whose tag name is one of: "td", "th"</dt>
<dd>
@@ -61426,10 +61435,9 @@
cell</a> algorithm is invoked.</p>
- <h5 id="parsing-main-inselect"><span class="secno">8.2.5.19 </span>The "<dfn title="insertion mode: in select">in select</dfn>" insertion mode</h5>
+ <h6 id="parsing-main-inselect"><span class="secno">8.2.5.4.16 </span>The "<dfn title="insertion mode: in select">in select</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inselect" title="insertion
- mode: in select">in select</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inselect" title="insertion mode: in select">in select</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is U+0000 NULL</dt>
<dd>
@@ -61577,10 +61585,9 @@
<p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
</dd>
- </dl><h5 id="parsing-main-inselectintable"><span class="secno">8.2.5.20 </span>The "<dfn title="insertion mode: in select in table">in select in table</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-inselectintable"><span class="secno">8.2.5.4.17 </span>The "<dfn title="insertion mode: in select in table">in select in table</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inselectintable" title="insertion
- mode: in select in table">in select in table</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inselectintable" title="insertion mode: in select in table">in select in table</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A start tag whose tag name is one of: "caption", "table",
"tbody", "tfoot", "thead", "tr", "td", "th"</dt>
@@ -61609,275 +61616,9 @@
mode</a>.</p>
</dd>
- </dl><h5 id="parsing-main-inforeign"><span class="secno">8.2.5.21 </span>The "<dfn title="insertion mode: in foreign content">in foreign content</dfn>" insertion mode</h5>
-
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inforeign" title="insertion
- mode: in foreign content">in foreign content</a>", tokens must be
- handled as follows:</p>
-
- <dl class="switch"><dt>Any token, if the <a href="#current-node">current node</a> is an element in the <a href="#html-namespace-0">HTML namespace</a></dt>
- <dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <a href="#current-node">current node</a> is a <a href="#mathml-text-integration-point">MathML text integration point</a></dt>
- <dt>A start tag whose tag name is "svg", if the <a href="#current-node">current node</a> is an <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a></dt>
- <dt>A start tag, if the <a href="#current-node">current node</a> is an <a href="#html-integration-point">HTML integration point</a></dt>
- <dt>A character token, if the <a href="#current-node">current node</a> is an <a href="#html-integration-point">HTML integration point</a></dt>
- <dt>An end-of-file token</dt>
- <dd>
-
- <ol><li><p>Process the token <a href="#using-the-rules-for">using the rules for</a> the
- "<a href="#parsing-main-inbody" title="insertion mode: in body">in body</a>"
- <a href="#insertion-mode">insertion mode</a>, except that if those rules say to
- reprocess the token, these steps must be finished first (i.e. the
- insertion mode is reset by the following step before the token is
- reprocessed).</li>
-
- <li><p>If, after doing so, the <a href="#insertion-mode">insertion mode</a> is
- still "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in
- foreign content</a>", <a href="#reset-the-insertion-mode-appropriately">reset the insertion mode
- appropriately</a>.</li>
-
- </ol></dd>
-
- <dt>A character token that is U+0000 NULL</dt>
- <dd>
-
- <p><a href="#parse-error">Parse error</a>. <a href="#insert-a-character" title="insert a
- character">Insert a U+FFFD REPLACEMENT CHARACTER character</a>
- into the <a href="#current-node">current node</a>.</p>
-
- </dd>
-
- <dt>A character token that is one of U+0009 CHARACTER TABULATION,
- U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D CARRIAGE
- RETURN (CR), or U+0020 SPACE</dt>
- <dd>
-
- <p><a href="#insert-a-character" title="insert a character">Insert the token's
- character</a> into the <a href="#current-node">current node</a>.</p>
-
- </dd>
-
- <dt>Any other character token</dt>
- <dd>
-
- <p><a href="#insert-a-character" title="insert a character">Insert the token's
- character</a> into the <a href="#current-node">current node</a>.</p>
-
- <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
-
- </dd>
-
- <dt>A comment token</dt>
- <dd>
- <p>Append a <code><a href="#comment-0">Comment</a></code> node to the <a href="#current-node">current
- node</a> with the <code title="">data</code> attribute set to
- the data given in the comment token.</p>
- </dd>
-
- <dt>A DOCTYPE token</dt>
- <dd>
- <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
- </dd>
-
- <dt>A start tag whose tag name is one of: <!--"a",--> "b", "big",
- "blockquote", "body"<!--by inspection-->, "br", "center", "code",
- "dd", "div", "dl", "dt"<!-- so that dd and dt can be handled
- uniformly throughout the parser -->, "em", "embed", "h1", "h2",
- "h3", "h4"<!--for completeness-->, "h5", "h6"<!--for
- completeness-->, "head"<!--by inspection-->, "hr", "i", "img",
- "li", "listing"<!-- so that pre and listing can be handled
- uniformly throughout the parser -->, "menu", "meta", "nobr",
- "ol"<!-- so that dl, ul, and ol can be handled uniformly throughout
- the parser -->, "p", "pre", "ruby", "s", <!--"script",--> "small",
- "span", "strong", "strike"<!-- so that s and strike can be handled
- uniformly throughout the parser -->, <!--"style",--> "sub", "sup",
- "table"<!--by inspection-->, "tt", "u", "ul", "var"</dt> <!-- this
- list was determined empirically by studying over 6,000,000,000
- pages that were specifically not XML pages -->
- <dt>A start tag whose tag name is "font", if the token has any
- attributes named "color", "face", or "size"</dt> <!-- the
- attributes here are required so that SVG <font> will go through as
- SVG but legacy <font>s won't -->
-
- <dd>
-
- <p><a href="#parse-error">Parse error</a>.</p>
-
- <p>Pop an element from the <a href="#stack-of-open-elements">stack of open elements</a>,
- and then keep popping more elements from the <a href="#stack-of-open-elements">stack of open
- elements</a> until the <a href="#current-node">current node</a> is a
- <a href="#mathml-text-integration-point">MathML text integration point</a>, an <a href="#html-integration-point">HTML
- integration point</a>, or an element in the <a href="#html-namespace-0">HTML
- namespace</a>.</p>
-
- <p>Then, <a href="#reset-the-insertion-mode-appropriately">reset the insertion mode appropriately</a> and
- reprocess the token.</p>
-
- </dd>
-
- <dt>Any other start tag</dt>
- <dd>
-
- <p>If the <a href="#current-node">current node</a> is an element in the
- <a href="#mathml-namespace">MathML namespace</a>, <a href="#adjust-mathml-attributes">adjust MathML
- attributes</a> for the token. (This fixes the case of MathML
- attributes that are not all lowercase.)</p>
-
- <p>If the <a href="#current-node">current node</a> is an element in the <a href="#svg-namespace">SVG
- namespace</a>, and the token's tag name is one of the ones in
- the first column of the following table, change the tag name to
- the name given in the corresponding cell in the second
- column. (This fixes the case of SVG elements that are not all
- lowercase.)</p>
-
- <table><thead><tr><th> Tag name <th> Element name
- <tbody><tr><td> <code title="">altglyph</code> <td> <code title="">altGlyph</code>
- <tr><td> <code title="">altglyphdef</code> <td> <code title="">altGlyphDef</code>
- <tr><td> <code title="">altglyphitem</code> <td> <code title="">altGlyphItem</code>
- <tr><td> <code title="">animatecolor</code> <td> <code title="">animateColor</code>
- <tr><td> <code title="">animatemotion</code> <td> <code title="">animateMotion</code>
- <tr><td> <code title="">animatetransform</code> <td> <code title="">animateTransform</code>
- <tr><td> <code title="">clippath</code> <td> <code title="">clipPath</code>
- <tr><td> <code title="">feblend</code> <td> <code title="">feBlend</code>
- <tr><td> <code title="">fecolormatrix</code> <td> <code title="">feColorMatrix</code>
- <tr><td> <code title="">fecomponenttransfer</code> <td> <code title="">feComponentTransfer</code>
- <tr><td> <code title="">fecomposite</code> <td> <code title="">feComposite</code>
- <tr><td> <code title="">feconvolvematrix</code> <td> <code title="">feConvolveMatrix</code>
- <tr><td> <code title="">fediffuselighting</code> <td> <code title="">feDiffuseLighting</code>
- <tr><td> <code title="">fedisplacementmap</code> <td> <code title="">feDisplacementMap</code>
- <tr><td> <code title="">fedistantlight</code> <td> <code title="">feDistantLight</code>
- <tr><td> <code title="">feflood</code> <td> <code title="">feFlood</code>
- <tr><td> <code title="">fefunca</code> <td> <code title="">feFuncA</code>
- <tr><td> <code title="">fefuncb</code> <td> <code title="">feFuncB</code>
- <tr><td> <code title="">fefuncg</code> <td> <code title="">feFuncG</code>
- <tr><td> <code title="">fefuncr</code> <td> <code title="">feFuncR</code>
- <tr><td> <code title="">fegaussianblur</code> <td> <code title="">feGaussianBlur</code>
- <tr><td> <code title="">feimage</code> <td> <code title="">feImage</code>
- <tr><td> <code title="">femerge</code> <td> <code title="">feMerge</code>
- <tr><td> <code title="">femergenode</code> <td> <code title="">feMergeNode</code>
- <tr><td> <code title="">femorphology</code> <td> <code title="">feMorphology</code>
- <tr><td> <code title="">feoffset</code> <td> <code title="">feOffset</code>
- <tr><td> <code title="">fepointlight</code> <td> <code title="">fePointLight</code>
- <tr><td> <code title="">fespecularlighting</code> <td> <code title="">feSpecularLighting</code>
- <tr><td> <code title="">fespotlight</code> <td> <code title="">feSpotLight</code>
- <tr><td> <code title="">fetile</code> <td> <code title="">feTile</code>
- <tr><td> <code title="">feturbulence</code> <td> <code title="">feTurbulence</code>
- <tr><td> <code title="">foreignobject</code> <td> <code title="">foreignObject</code>
- <tr><td> <code title="">glyphref</code> <td> <code title="">glyphRef</code>
- <tr><td> <code title="">lineargradient</code> <td> <code title="">linearGradient</code>
- <tr><td> <code title="">radialgradient</code> <td> <code title="">radialGradient</code>
- <!--<tr> <td> <code title="">solidcolor</code> <td> <code title="">solidColor</code> (SVG 1.2)-->
- <tr><td> <code title="">textpath</code> <td> <code title="">textPath</code>
- </table><p>If the <a href="#current-node">current node</a> is an element in the <a href="#svg-namespace">SVG
- namespace</a>, <a href="#adjust-svg-attributes">adjust SVG attributes</a> for the
- token. (This fixes the case of SVG attributes that are not all
- lowercase.)</p>
-
- <p><a href="#adjust-foreign-attributes">Adjust foreign attributes</a> for the token. (This
- fixes the use of namespaced attributes, in particular XLink in
- SVG.)</p>
-
- <p><a href="#insert-a-foreign-element">Insert a foreign element</a> for the token, in the
- same namespace as the <a href="#current-node">current node</a>.</p>
-
- <p>If the token has its <i>self-closing flag</i> set, pop the
- <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
- elements</a> and <a href="#acknowledge-self-closing-flag" title="acknowledge self-closing
- flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
-
- </dd>
-
- <dt id="scriptForeignEndTag">An end tag whose tag name is "script", if the <a href="#current-node">current node</a> is a <code title="">script</code> element in the <a href="#svg-namespace">SVG namespace</a></dt>
- <dd>
-
- <p>Pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
- elements</a>.</p>
-
- <p>Let the <var title="">old insertion point</var> have the
- same value as the current <a href="#insertion-point">insertion point</a>. Let
- the <a href="#insertion-point">insertion point</a> be just before the <a href="#next-input-character">next
- input character</a>.</p>
-
- <p>Increment the parser's <a href="#script-nesting-level">script nesting level</a> by
- one. Set the <a href="#parser-pause-flag">parser pause flag</a> to true.</p>
-
- <p><a href="http://www.w3.org/TR/SVGMobile12/script.html#ScriptContentProcessing">Process
- the <code title="">script</code> element</a> according to the SVG
- rules, if the user agent supports SVG. <a href="#refsSVG">[SVG]</a></p>
-
- <p class="note">Even if this causes <a href="#dom-document-write" title="dom-document-write">new characters to be inserted into the
- tokenizer</a>, the parser will not be executed reentrantly,
- since the <a href="#parser-pause-flag">parser pause flag</a> is true.</p>
-
- <p>Decrement the parser's <a href="#script-nesting-level">script nesting level</a> by
- one. If the parser's <a href="#script-nesting-level">script nesting level</a> is zero,
- then set the <a href="#parser-pause-flag">parser pause flag</a> to false.</p>
-
- <p>Let the <a href="#insertion-point">insertion point</a> have the value of the <var title="">old insertion point</var>. (In other words, restore the
- <a href="#insertion-point">insertion point</a> to its previous value. This value
- might be the "undefined" value.)</p>
-
- </dd>
-
- <dt>Any other end tag</dt>
-
- <dd>
-
- <p>Run these steps:</p>
-
- <ol><li><p>Initialize <var title="">node</var> to be the <a href="#current-node">current
- node</a> (the bottommost node of the stack).</li>
-
- <li><p>If <var title="">node</var> is not an element with the
- same tag name as the token, then this is a <a href="#parse-error">parse
- error</a>.</li>
-
- <li><p><i>Loop</i>: If <var title="">node</var>'s tag name,
- <a href="#converted-to-ascii-lowercase">converted to ASCII lowercase</a>, is the same as as the
- tag name of the token, pop elements from the <a href="#stack-of-open-elements">stack of open
- elements</a> until <var title="">node</var> has been popped
- from the stack, and then jump to the last step of this list of
- steps.</li>
-
- <li><p>Set <var title="">node</var> to the previous entry in the
- <a href="#stack-of-open-elements">stack of open elements</a>.</li>
-
- <li><p>If <var title="">node</var> is not an element in the
- <a href="#html-namespace-0">HTML namespace</a>, return to the step labeled
- <i>loop</i>.</li>
-
- <li><p>Otherwise, process the token <a href="#using-the-rules-for">using the rules
- for</a> the "<a href="#parsing-main-inbody" title="insertion mode: in body">in
- body</a>" <a href="#insertion-mode">insertion mode</a>, except that if those
- rules say to reprocess the token, these steps must be finished
- first (i.e. the insertion mode is reset by the following step
- before the token is reprocessed).</li>
-
- <li><p>If the <a href="#insertion-mode">insertion mode</a> is still "<a href="#parsing-main-inforeign" title="insertion mode: in foreign content">in foreign
- content</a>", <a href="#reset-the-insertion-mode-appropriately">reset the insertion mode
- appropriately</a>.</li>
-
- </ol></dd>
-
- </dl><p>The <a href="#current-node">current node</a> is a <dfn id="mathml-text-integration-point">MathML text
- integration point</dfn> if it is one of the following elements:</p>
-
- <ul class="brief"><li>An <code title="">mi</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
- <li>An <code title="">mo</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
- <li>An <code title="">mn</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
- <li>An <code title="">ms</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
- <li>An <code title="">mtext</code> element in the <a href="#mathml-namespace">MathML namespace</a></li>
- </ul><p>The <a href="#current-node">current node</a> is an <dfn id="html-integration-point">HTML
- integration point</dfn> if it is one of the following elements:</p>
-
- <ul class="brief"><li>An <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">text/html</code>"</li>
- <li>An <code title="">annotation-xml</code> element in the <a href="#mathml-namespace">MathML namespace</a> whose start tag token had an attribute with the name "encoding" whose value was an <a href="#ascii-case-insensitive">ASCII case-insensitive</a> match for the string "<code title="">application/xhtml+xml</code>"</li>
- <li>A <code title="">foreignObject</code> element in the <a href="#svg-namespace">SVG namespace</a></li>
- <li>A <code title="">desc</code> element in the <a href="#svg-namespace">SVG namespace</a></li>
- <li>A <code title="">title</code> element in the <a href="#svg-namespace">SVG namespace</a></li>
- </ul><h5 id="parsing-main-afterbody"><span class="secno">8.2.5.22 </span>The "<dfn title="insertion mode: after body">after body</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-afterbody"><span class="secno">8.2.5.4.18 </span>The "<dfn title="insertion mode: after body">after body</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-afterbody" title="insertion
- mode: after body">after body</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-afterbody" title="insertion mode: after body">after body</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
@@ -61932,10 +61673,9 @@
</dd>
- </dl><h5 id="parsing-main-inframeset"><span class="secno">8.2.5.23 </span>The "<dfn title="insertion mode: in frameset">in frameset</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-inframeset"><span class="secno">8.2.5.4.19 </span>The "<dfn title="insertion mode: in frameset">in frameset</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-inframeset" title="insertion
- mode: in frameset">in frameset</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-inframeset" title="insertion mode: in frameset">in frameset</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
TABULATION, U+000A LINE FEED (LF), U+000C FORM FEED (FF),
@@ -62025,10 +61765,9 @@
<p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
</dd>
- </dl><h5 id="parsing-main-afterframeset"><span class="secno">8.2.5.24 </span>The "<dfn title="insertion mode: after frameset">after frameset</dfn>" insertion mode</h5>
+ </dl><h6 id="parsing-main-afterframeset"><span class="secno">8.2.5.4.20 </span>The "<dfn title="insertion mode: after frameset">after frameset</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#parsing-main-afterframeset" title="insertion
- mode: after frameset">after frameset</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#parsing-main-afterframeset" title="insertion mode: after frameset">after frameset</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<!-- due to rules in the "in frameset" mode, this can't be entered in the fragment case -->
<dl class="switch"><dt>A character token that is one of U+0009 CHARACTER
@@ -62079,10 +61818,9 @@
<p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
</dd>
- </dl><h5 id="the-after-after-body-insertion-mode"><span class="secno">8.2.5.25 </span>The "<dfn title="insertion mode: after after body">after after body</dfn>" insertion mode</h5>
+ </dl><h6 id="the-after-after-body-insertion-mode"><span class="secno">8.2.5.4.21 </span>The "<dfn title="insertion mode: after after body">after after body</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#the-after-after-body-insertion-mode" title="insertion
- mode: after after body">after after body</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#the-after-after-body-insertion-mode" title="insertion mode: after after body">after after body</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A comment token</dt>
<dd>
@@ -62113,10 +61851,9 @@
reprocess the token.</p>
</dd>
- </dl><h5 id="the-after-after-frameset-insertion-mode"><span class="secno">8.2.5.26 </span>The "<dfn title="insertion mode: after after frameset">after after frameset</dfn>" insertion mode</h5>
+ </dl><h6 id="the-after-after-frameset-insertion-mode"><span class="secno">8.2.5.4.22 </span>The "<dfn title="insertion mode: after after frameset">after after frameset</dfn>" insertion mode</h6>
- <p>When the <a href="#insertion-mode">insertion mode</a> is "<a href="#the-after-after-frameset-insertion-mode" title="insertion
- mode: after after frameset">after after frameset</a>", tokens must be handled as follows:</p>
+ <p>When the user agent is to apply the rules for the "<a href="#the-after-after-frameset-insertion-mode" title="insertion mode: after after frameset">after after frameset</a>" <a href="#insertion-mode">insertion mode</a>, the user agent must handle the token as follows:</p>
<dl class="switch"><dt>A comment token</dt>
<dd>
@@ -62151,6 +61888,223 @@
<p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
</dd>
+ </dl><h5 id="parsing-main-inforeign"><span class="secno">8.2.5.5 </span>The rules for parsing tokens <dfn title="insertion mode: in foreign content">in foreign content</dfn></h5>
+
+ <p>When the user agent is to apply the rules for parsing tokens in foreign content, the user agent must handle the token as follows:</p>
+
+ <dl class="switch"><dt>A character token that is U+0000 NULL</dt>
+ <dd>
+
+ <p><a href="#parse-error">Parse error</a>. <a href="#insert-a-character" title="insert a
+ character">Insert a U+FFFD REPLACEMENT CHARACTER character</a>
+ into the <a href="#current-node">current node</a>.</p>
+
+ </dd>
+
+ <dt>A character token that is one of U+0009 CHARACTER TABULATION,
+ U+000A LINE FEED (LF), U+000C FORM FEED (FF), U+000D CARRIAGE
+ RETURN (CR), or U+0020 SPACE</dt>
+ <dd>
+
+ <p><a href="#insert-a-character" title="insert a character">Insert the token's
+ character</a> into the <a href="#current-node">current node</a>.</p>
+
+ </dd>
+
+ <dt>Any other character token</dt>
+ <dd>
+
+ <p><a href="#insert-a-character" title="insert a character">Insert the token's
+ character</a> into the <a href="#current-node">current node</a>.</p>
+
+ <p>Set the <a href="#frameset-ok-flag">frameset-ok flag</a> to "not ok".</p>
+
+ </dd>
+
+ <dt>A comment token</dt>
+ <dd>
+ <p>Append a <code><a href="#comment-0">Comment</a></code> node to the <a href="#current-node">current
+ node</a> with the <code title="">data</code> attribute set to
+ the data given in the comment token.</p>
+ </dd>
+
+ <dt>A DOCTYPE token</dt>
+ <dd>
+ <p><a href="#parse-error">Parse error</a>. Ignore the token.</p>
+ </dd>
+
+ <dt>A start tag whose tag name is one of: <!--"a",--> "b", "big",
+ "blockquote", "body"<!--by inspection-->, "br", "center", "code",
+ "dd", "div", "dl", "dt"<!-- so that dd and dt can be handled
+ uniformly throughout the parser -->, "em", "embed", "h1", "h2",
+ "h3", "h4"<!--for completeness-->, "h5", "h6"<!--for
+ completeness-->, "head"<!--by inspection-->, "hr", "i", "img",
+ "li", "listing"<!-- so that pre and listing can be handled
+ uniformly throughout the parser -->, "menu", "meta", "nobr",
+ "ol"<!-- so that dl, ul, and ol can be handled uniformly throughout
+ the parser -->, "p", "pre", "ruby", "s", <!--"script",--> "small",
+ "span", "strong", "strike"<!-- so that s and strike can be handled
+ uniformly throughout the parser -->, <!--"style",--> "sub", "sup",
+ "table"<!--by inspection-->, "tt", "u", "ul", "var"</dt> <!-- this
+ list was determined empirically by studying over 6,000,000,000
+ pages that were specifically not XML pages -->
+ <dt>A start tag whose tag name is "font", if the token has any
+ attributes named "color", "face", or "size"</dt> <!-- the
+ attributes here are required so that SVG <font> will go through as
+ SVG but legacy <font>s won't -->
+
+ <dd>
+
+ <p><a href="#parse-error">Parse error</a>.</p>
+
+ <p>Pop an element from the <a href="#stack-of-open-elements">stack of open elements</a>,
+ and then keep popping more elements from the <a href="#stack-of-open-elements">stack of open
+ elements</a> until the <a href="#current-node">current node</a> is a
+ <a href="#mathml-text-integration-point">MathML text integration point</a>, an <a href="#html-integration-point">HTML
+ integration point</a>, or an element in the <a href="#html-namespace-0">HTML
+ namespace</a>.</p>
+
+ <p>Then, reprocess the token.</p>
+
+ </dd>
+
+ <dt>Any other start tag</dt>
+ <dd>
+
+ <p>If the <a href="#current-node">current node</a> is an element in the
+ <a href="#mathml-namespace">MathML namespace</a>, <a href="#adjust-mathml-attributes">adjust MathML
+ attributes</a> for the token. (This fixes the case of MathML
+ attributes that are not all lowercase.)</p>
+
+ <p>If the <a href="#current-node">current node</a> is an element in the <a href="#svg-namespace">SVG
+ namespace</a>, and the token's tag name is one of the ones in
+ the first column of the following table, change the tag name to
+ the name given in the corresponding cell in the second
+ column. (This fixes the case of SVG elements that are not all
+ lowercase.)</p>
+
+ <table><thead><tr><th> Tag name <th> Element name
+ <tbody><tr><td> <code title="">altglyph</code> <td> <code title="">altGlyph</code>
+ <tr><td> <code title="">altglyphdef</code> <td> <code title="">altGlyphDef</code>
+ <tr><td> <code title="">altglyphitem</code> <td> <code title="">altGlyphItem</code>
+ <tr><td> <code title="">animatecolor</code> <td> <code title="">animateColor</code>
+ <tr><td> <code title="">animatemotion</code> <td> <code title="">animateMotion</code>
+ <tr><td> <code title="">animatetransform</code> <td> <code title="">animateTransform</code>
+ <tr><td> <code title="">clippath</code> <td> <code title="">clipPath</code>
+ <tr><td> <code title="">feblend</code> <td> <code title="">feBlend</code>
+ <tr><td> <code title="">fecolormatrix</code> <td> <code title="">feColorMatrix</code>
+ <tr><td> <code title="">fecomponenttransfer</code> <td> <code title="">feComponentTransfer</code>
+ <tr><td> <code title="">fecomposite</code> <td> <code title="">feComposite</code>
+ <tr><td> <code title="">feconvolvematrix</code> <td> <code title="">feConvolveMatrix</code>
+ <tr><td> <code title="">fediffuselighting</code> <td> <code title="">feDiffuseLighting</code>
+ <tr><td> <code title="">fedisplacementmap</code> <td> <code title="">feDisplacementMap</code>
+ <tr><td> <code title="">fedistantlight</code> <td> <code title="">feDistantLight</code>
+ <tr><td> <code title="">feflood</code> <td> <code title="">feFlood</code>
+ <tr><td> <code title="">fefunca</code> <td> <code title="">feFuncA</code>
+ <tr><td> <code title="">fefuncb</code> <td> <code title="">feFuncB</code>
+ <tr><td> <code title="">fefuncg</code> <td> <code title="">feFuncG</code>
+ <tr><td> <code title="">fefuncr</code> <td> <code title="">feFuncR</code>
+ <tr><td> <code title="">fegaussianblur</code> <td> <code title="">feGaussianBlur</code>
+ <tr><td> <code title="">feimage</code> <td> <code title="">feImage</code>
+ <tr><td> <code title="">femerge</code> <td> <code title="">feMerge</code>
+ <tr><td> <code title="">femergenode</code> <td> <code title="">feMergeNode</code>
+ <tr><td> <code title="">femorphology</code> <td> <code title="">feMorphology</code>
+ <tr><td> <code title="">feoffset</code> <td> <code title="">feOffset</code>
+ <tr><td> <code title="">fepointlight</code> <td> <code title="">fePointLight</code>
+ <tr><td> <code title="">fespecularlighting</code> <td> <code title="">feSpecularLighting</code>
+ <tr><td> <code title="">fespotlight</code> <td> <code title="">feSpotLight</code>
+ <tr><td> <code title="">fetile</code> <td> <code title="">feTile</code>
+ <tr><td> <code title="">feturbulence</code> <td> <code title="">feTurbulence</code>
+ <tr><td> <code title="">foreignobject</code> <td> <code title="">foreignObject</code>
+ <tr><td> <code title="">glyphref</code> <td> <code title="">glyphRef</code>
+ <tr><td> <code title="">lineargradient</code> <td> <code title="">linearGradient</code>
+ <tr><td> <code title="">radialgradient</code> <td> <code title="">radialGradient</code>
+ <!--<tr> <td> <code title="">solidcolor</code> <td> <code title="">solidColor</code> (SVG 1.2)-->
+ <tr><td> <code title="">textpath</code> <td> <code title="">textPath</code>
+ </table><p>If the <a href="#current-node">current node</a> is an element in the <a href="#svg-namespace">SVG
+ namespace</a>, <a href="#adjust-svg-attributes">adjust SVG attributes</a> for the
+ token. (This fixes the case of SVG attributes that are not all
+ lowercase.)</p>
+
+ <p><a href="#adjust-foreign-attributes">Adjust foreign attributes</a> for the token. (This
+ fixes the use of namespaced attributes, in particular XLink in
+ SVG.)</p>
+
+ <p><a href="#insert-a-foreign-element">Insert a foreign element</a> for the token, in the
+ same namespace as the <a href="#current-node">current node</a>.</p>
+
+ <p>If the token has its <i>self-closing flag</i> set, pop the
+ <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
+ elements</a> and <a href="#acknowledge-self-closing-flag" title="acknowledge self-closing
+ flag">acknowledge the token's <i>self-closing flag</i></a>.</p>
+
+ </dd>
+
+ <dt id="scriptForeignEndTag">An end tag whose tag name is "script", if the <a href="#current-node">current node</a> is a <code title="">script</code> element in the <a href="#svg-namespace">SVG namespace</a></dt>
+ <dd>
+
+ <p>Pop the <a href="#current-node">current node</a> off the <a href="#stack-of-open-elements">stack of open
+ elements</a>.</p>
+
+ <p>Let the <var title="">old insertion point</var> have the
+ same value as the current <a href="#insertion-point">insertion point</a>. Let
+ the <a href="#insertion-point">insertion point</a> be just before the <a href="#next-input-character">next
+ input character</a>.</p>
+
+ <p>Increment the parser's <a href="#script-nesting-level">script nesting level</a> by
+ one. Set the <a href="#parser-pause-flag">parser pause flag</a> to true.</p>
+
+ <p><a href="http://www.w3.org/TR/SVGMobile12/script.html#ScriptContentProcessing">Process
+ the <code title="">script</code> element</a> according to the SVG
+ rules, if the user agent supports SVG. <a href="#refsSVG">[SVG]</a></p>
+
+ <p class="note">Even if this causes <a href="#dom-document-write" title="dom-document-write">new characters to be inserted into the
+ tokenizer</a>, the parser will not be executed reentrantly,
+ since the <a href="#parser-pause-flag">parser pause flag</a> is true.</p>
+
+ <p>Decrement the parser's <a href="#script-nesting-level">script nesting level</a> by
+ one. If the parser's <a href="#script-nesting-level">script nesting level</a> is zero,
+ then set the <a href="#parser-pause-flag">parser pause flag</a> to false.</p>
+
+ <p>Let the <a href="#insertion-point">insertion point</a> have the value of the <var title="">old insertion point</var>. (In other words, restore the
+ <a href="#insertion-point">insertion point</a> to its previous value. This value
+ might be the "undefined" value.)</p>
+
+ </dd>
+
+ <dt>Any other end tag</dt>
+
+ <dd>
+
+ <p>Run these steps:</p>
+
+ <ol><li><p>Initialize <var title="">node</var> to be the <a href="#current-node">current
+ node</a> (the bottommost node of the stack).</li>
+
+ <li><p>If <var title="">node</var> is not an element with the
+ same tag name as the token, then this is a <a href="#parse-error">parse
+ error</a>.</li>
+
+ <li><p><i>Loop</i>: If <var title="">node</var>'s tag name,
+ <a href="#converted-to-ascii-lowercase">converted to ASCII lowercase</a>, is the same as as the
+ tag name of the token, pop elements from the <a href="#stack-of-open-elements">stack of open
+ elements</a> until <var title="">node</var> has been popped
+ from the stack, and then jump to the last step of this list of
+ steps.</li>
+
+ <li><p>Set <var title="">node</var> to the previous entry in the
+ <a href="#stack-of-open-elements">stack of open elements</a>.</li>
+
+ <li><p>If <var title="">node</var> is not an element in the
+ <a href="#html-namespace-0">HTML namespace</a>, return to the step labeled
+ <i>loop</i>.</li>
+
+ <li><p>Otherwise, process the token according to the rules given
+ in the section corresponding to the current <a href="#insertion-mode">insertion
+ mode</a> in HTML content.</li>
+
+ </ol></dd>
+
</dl></div><div class="impl">
<h4 id="the-end"><span class="secno">8.2.6 </span>The end</h4>
Received on Monday, 28 February 2011 23:56:37 UTC