html5/html4-differences Overview.src.html,1.204,1.205

Update of /sources/public/html5/html4-differences
In directory hutz:/tmp/cvs-serv15279

Modified Files:
	Overview.src.html 
Log Message:
elaborate on syntax

Index: Overview.src.html
===================================================================
RCS file: /sources/public/html5/html4-differences/Overview.src.html,v
retrieving revision 1.204
retrieving revision 1.205
diff -u -d -r1.204 -r1.205
--- Overview.src.html	14 Sep 2012 12:53:01 -0000	1.204
+++ Overview.src.html	14 Sep 2012 14:19:03 -0000	1.205
@@ -222,7 +222,7 @@
     type.</p>
 
     <p>HTML5 also defines detailed parsing rules (including "error
-    handling") for this syntax which are largely compatible with popular
+    handling") for this syntax which are largely compatible with HTML4-era
     implementations. User agents must use these rules for resources that
     have the <code>text/html</code> media type. Here is an example document
     that conforms to the HTML syntax:</p>
@@ -299,6 +299,13 @@
     written using the HTML syntax. Browsers already do this for
     <code>&lt;!DOCTYPE html></code>.</p>
     
+    <p>To support legacy markup generators that cannot generate the preferred
+    short doctype, the doctype <code>&lt;!DOCTYPE html SYSTEM
+    "about:legacy-compat"></code> is allowed in the HTML syntax.
+    
+    <p>The strict doctypes for HTML 4.0, HTML 4.01, XHTML 1.0 as well as XHTML
+    1.1 are also allowed (but are discouraged) in the HTML syntax.
+    
     <p>In the XML syntax, any doctype declaration may be used, or it may be
     omitted altogether. Documents with an XML media type are always handled in
     standards mode.
@@ -307,7 +314,19 @@
     <h3 id="mathml-svg">MathML and SVG</h3>
 
     <p>The HTML syntax of HTML5 allows for MathML and SVG elements to
-    be used inside a document. For instance, a very simple document using some of the
+    be used inside a document. An <code>math</code> or <code>svg</code> start
+    tag causes the HTML parser to switch to a special insertion mode which puts
+    elements and attributes in the appropriate namespaces, does case fixups for
+    elements and attributes that have mixed case, and supports the empty-element
+    syntax as in XML. The syntax is still case-insensitive and attributes allow
+    the same syntax as for HTML elements. Namespace declarations may be omitted.
+    CDATA sections are supported in this insertion mode.
+    
+    <p>Some MathML and SVG elements cause the parser to switch back to "HTML
+    mode", e.g. <code>mtext</code> and <code>foreignObject</code>, so you can
+    use HTML elements or a new <code>math</code> or <code>svg</code> element.
+    
+    <p>For instance, a very simple document using some of the
     minimal syntax features could look like:</p>
 
     <pre><code>&lt;!doctype html>
@@ -317,19 +336,39 @@
  <strong>&lt;svg> &lt;circle r="50" cx="50" cy="50" fill="green"/> &lt;/svg></strong>
 &lt;/p></code></pre>
 
-    <p>More complex combinations are also possible. For instance, with the SVG
-    <code>foreignObject</code> element you could nest MathML, HTML, or both
-    inside an SVG fragment that is itself inside HTML.</p>
-
-
     <h3 id="syntax-misc">Miscellaneous</h3>
 
-    <p>There are a few other syntax changes worthy of mentioning:</p>
+    <p>There are a few other changes in the HTML syntax worthy of mentioning:</p>
 
     <ul>
      <li>The <code>&amp;lang;</code> and <code>&amp;rang;</code> named character
      references now expand to U+27E8 and U+27E9 instead of U+2329 and U+232A,
      respectively.
+     
+     <li>Many new named character references have been added, including all from
+     MathML.
+     
+     <li>Void elements (known as "EMPTY" in HTML4) are allowed to have a
+     trailing slash.
+     
+     <li>The ampersand (<code>&amp;</code>) may be left unescaped in some more
+     cases compared to HTML4.
+     
+     <li>Attributes have to be separated by at least one whitespace character.
+     
+     <li>Attributes with an empty value may be written as just the attribute
+     name omitting the equals sign and the value, even if it's not a boolean
+     attribute. (HTML4 actually allowed using only the attribute
+     <em>value</em> and omitting the attribute name, for enumerated attributes,
+     but this was not supported in browsers.)
+     
+     <li>Attributes omitting quotes for the value are allowed to use a larger
+     set of characters compared to HTML4.
+     
+     <li>The <code>optgroup</code> end tag is now optional.
+     
+     <li>The <code>colgroup</code> start tag is now optional and is inferred by
+     the HTML parser.
     </ul>
 
 

Received on Friday, 14 September 2012 14:19:06 UTC