Permalink
Browse files

[] (0) SVG in text/html: Second try, based on more recent feedback.

git-svn-id: http://svn.whatwg.org/webapps@2904 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information...
1 parent 511b87b commit f6a4d7fed33cd6ebcd2f2188302ed00b7aac1465 @Hixie Hixie committed Mar 25, 2009
Showing with 250 additions and 214 deletions.
  1. +188 −177 index
  2. +62 −37 source
View
Oops, something went wrong.
View
@@ -7210,7 +7210,8 @@ interface <dfn>HTMLDocument</dfn> {
<span title="the head element"><code>head</code> element</span>,
the new value is ignored.</p>
<p>In SVG documents, the <code>SVGDocument</code> interface's
- <code title="">title</code> attribute takes precedence.</p>
+ <code title="dom-svg-title">title</code> attribute takes
+ precedence.</p>
</dd>
</dl>
@@ -11381,9 +11382,10 @@ people expect to have work and what is necessary.
<dt>The style sheet title (<code title="dom-stylesheet-title">title</code> DOM attribute)</dt>
<dd><p>The title must be the same as the value of the element's
- <code title="">title</code> content attribute. If the attribute is
- absent, then the style sheet does not have a title. The title is
- used for defining <dfn>alternative style sheet sets</dfn>.</p></dd>
+ <code title="dom-title">title</code> content attribute. If the
+ attribute is absent, then the style sheet does not have a
+ title. The title is used for defining <dfn>alternative style sheet
+ sets</dfn>.</p></dd>
</dl>
@@ -27642,10 +27644,16 @@ function AddCloud(data, x, y) { ... }</pre>
</div>
<p>When the SVG <code>foreignObject</code> element contains elements
- from the HTML namespace, such elements must all be <span>flow
- content</span> and must not be interleaved with non-HTML
+ from the <span>HTML namespace</span>, such elements must all be
+ <span>flow content</span> and must not be interleaved with non-HTML
elements. <a href="#refsSVG">[SVG]</a></p>
+ <p>The content model for <code title="">title</code> elements in the
+ <span>SVG namespace</span> inside <span>HTML documents</span> is
+ <span>phrasing content</span>. (This further constrains the
+ requirements given in the SVG specification.)</p>
+
+
<h4><dfn>Dimension attributes</dfn></h4>
@@ -62325,9 +62333,7 @@ interface <dfn>MessagePort</dfn> {
<dt>Foreign elements</dt>
<dd>Elements from the <span>MathML namespace</span>
-<!--XXXSVG
and the <span>SVG namespace</span>.</dd>
--->
<dt>Normal elements</dt>
@@ -63835,12 +63841,11 @@ interface <dfn>MessagePort</dfn> {
steps.</li>
<li>If <var title="">node</var> is an element from the <span>MathML
- namespace</span><!--XXXSVG or the <span>SVG namespace</span>-->,
- then switch the <span>insertion mode</span> to "<span
- title="insertion mode: in foreign content">in foreign
- content</span>", let the <span>secondary insertion mode</span> be
- "<span title="insertion mode: in body">in body</span>", and abort
- these steps.</li>
+ namespace</span> or the <span>SVG namespace</span>, then switch the
+ <span>insertion mode</span> to "<span title="insertion mode: in
+ foreign content">in foreign content</span>", let the
+ <span>secondary insertion mode</span> be "<span title="insertion
+ mode: in body">in body</span>", and abort these steps.</li>
<li>If <var title="">node</var> is a <code>head</code> element,
then switch the <span>insertion mode</span> to "<span
@@ -63969,7 +63974,7 @@ interface <dfn>MessagePort</dfn> {
parsing: <code>applet</code>, <code>button</code>,
<code>caption</code>, <code>html</code>, <code>marquee</code>,
<code>object</code>, <code>table</code>, <code>td</code>,
- <code>th</code><!--XXXSVG, and SVG's <code>foreignObject</code>-->.</p></dd>
+ <code>th</code>, and SVG's <code>foreignObject</code>.</p></dd>
<dt><dfn>Formatting</dfn></dt>
<dd><p>The following HTML elements are those that end up in the
@@ -64010,7 +64015,7 @@ interface <dfn>MessagePort</dfn> {
<li><code>button</code> in the HTML namespace</li>
<li><code>marquee</code> in the HTML namespace</li>
<li><code>object</code> in the HTML namespace</li>
-<!--XXXSVG <li><code title="">foreignObject</code> in the SVG namespace</li>-->
+ <li><code title="">foreignObject</code> in the SVG namespace</li>
</ul>
</li>
@@ -65819,7 +65824,6 @@ interface <dfn>MessagePort</dfn> {
named <code title="">definitionurl</code>, change its name to <code
title="">definitionURL</code> (note the case difference).</p>
-<!--XXXSVG
<p>When the steps below require the user agent to <dfn>adjust SVG
attributes</dfn> for a token, then, for each attribute on the token
whose attribute name is one of the ones in the first column of the
@@ -65894,7 +65898,6 @@ interface <dfn>MessagePort</dfn> {
<tr> <td> <code title="">ychannelselector</code> <td> <code title="">yChannelSelector</code>
<tr> <td> <code title="">zoomandpan</code> <td> <code title="">zoomAndPan</code>
</table>
--->
<p>When the steps below require the user agent to <dfn>adjust
foreign attributes</dfn> for a token, then, if any of the attributes
@@ -67855,7 +67858,7 @@ interface <dfn>MessagePort</dfn> {
foreign content">in foreign content</span>".</p>
</dd>
-<!--XXXSVG
+
<dt>A start tag whose tag name is "svg"</dt>
<dd>
@@ -67883,7 +67886,6 @@ interface <dfn>MessagePort</dfn> {
foreign content">in foreign content</span>".</p>
</dd>
--->
<dt>A start <!--or end--> tag whose tag name is one of: "caption",
"col", "colgroup", "frame", "head", "tbody", "td", "tfoot", "th",
@@ -68030,11 +68032,10 @@ interface <dfn>MessagePort</dfn> {
one. If the parser's <span>script nesting level</span> is zero,
then set the <span>parser pause flag</span> to false.</p>
- <p>Let the <span>insertion point</span> have the value of the
- <var title="">old insertion point</var>. (In other words,
- restore the <span>insertion point</span> to the value it had
- before the previous paragraph. This value might be the
- "undefined" value.)</p>
+ <p>Let the <span>insertion point</span> have the value of the <var
+ title="">old insertion point</var>. (In other words, restore the
+ <span>insertion point</span> to its previous value. This value
+ might be the "undefined" value.)</p>
<p id="scriptTagParserResumes">At this stage, if there is a
<span>pending external script</span>, then:</p>
@@ -68969,19 +68970,50 @@ interface <dfn>MessagePort</dfn> {
<p><span>Parse error</span>. Ignore the token.</p>
</dd>
- <!--XXXSVG need to define processing for </script> to match HTML5's </script> processing -->
+ <dt>An end tag whose tag name is "script", if the <span>current node</span> is a <code title="">script</code> element in the <span>SVG namespace</span>.</dt>
+ <dd>
+
+ <p>Pop the <span>current node</span> off the <span>stack of open
+ elements</span>.</p>
+
+ <p>Let the <var title="">old insertion point</var> have the
+ same value as the current <span>insertion point</span>. Let
+ the <span>insertion point</span> be just before the <span>next
+ input character</span>.</p>
+
+ <p>Increment the parser's <span>script nesting level</span> by
+ one. Set the <span>parser pause flag</span> 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. <a href="#refsSVG">[SVG]</a></p>
+
+ <p class="note">Even if this causes <span
+ title="dom-document-write">new characters to be inserted into the
+ tokeniser</span>, the parser will not be executed reentrantly,
+ since the <span>parser pause flag</span> is true.</p>
+
+ <p>Decrement the parser's <span>script nesting level</span> by
+ one. If the parser's <span>script nesting level</span> is zero,
+ then set the <span>parser pause flag</span> to false.</p>
+
+ <p>Let the <span>insertion point</span> have the value of the <var
+ title="">old insertion point</var>. (In other words, restore the
+ <span>insertion point</span> to its previous value. This value
+ might be the "undefined" value.)</p>
+
+ </dd>
<dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mi</code> element in the <span>MathML namespace</span>.</dt>
<dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mo</code> element in the <span>MathML namespace</span>.</dt>
<dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mn</code> element in the <span>MathML namespace</span>.</dt>
<dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">ms</code> element in the <span>MathML namespace</span>.</dt>
<dt>A start tag whose tag name is neither "mglyph" nor "malignmark", if the <span>current node</span> is an <code title="">mtext</code> element in the <span>MathML namespace</span>.</dt>
-<!--XXXSVG
<dt>A start tag whose tag name is "svg", if the <span>current node</span> is an <code title="">annotation-xml</code> element in the <span>MathML namespace</span>.</dt>
<dt>A start tag, if the <span>current node</span> is a <code title="">foreignObject</code> element in the <span>SVG namespace</span>.</dt>
<dt>A start tag, if the <span>current node</span> is a <code title="">desc</code> element in the <span>SVG namespace</span>.</dt>
<dt>A start tag, if the <span>current node</span> is a <code title="">title</code> element in the <span>SVG namespace</span>.</dt>
--->
<dt>A start tag, if the <span>current node</span> is an element in the <span>HTML namespace</span>.</dt>
<dt>An end tag</dt>
<dd>
@@ -69040,7 +69072,6 @@ interface <dfn>MessagePort</dfn> {
attributes</span> for the token. (This fixes the case of MathML
attributes that are not all lowercase.)</p>
-<!--XXXSVG
<p>If the <span>current node</span> is an element in the <span>SVG
namespace</span>, and the token's tag name is one of the ones in
the first column of the following table, change the tag name to
@@ -69087,15 +69118,15 @@ interface <dfn>MessagePort</dfn> {
<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="">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 <span>current node</span> is an element in the <span>SVG
namespace</span>, <span>adjust SVG attributes</span> for the
token. (This fixes the case of SVG attributes that are not all
lowercase.)</p>
--->
+
<p><span>Adjust foreign attributes</span> for the token. (This
fixes the use of namespaced attributes, in particular XLink in
SVG.)</p>
@@ -72975,12 +73006,6 @@ S SPACER STRIKE TT U -->
<!-- <p>XXX example here</p> -->
-<!--XXXSVG (remove next section)-->
- <h3>Declarative 2D vector graphics and animation</h3>
- <p>Embedding vector graphics into XHTML documents is the domain of
- SVG.</p>
-
- <!-- <p>XXX example here</p> -->
<h3>Declarative 3D scenes</h3>

0 comments on commit f6a4d7f

Please sign in to comment.