- From: Michael Smith via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 20 Jul 2009 14:56:56 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/markup/src
In directory hutz:/tmp/cvs-serv15972/src
Modified Files:
head.html syntax.html
Log Message:
many refinements to h:tml syntax section for clarity and concision
Index: head.html
===================================================================
RCS file: /sources/public/html5/markup/src/head.html,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- head.html 2 May 2009 09:24:22 -0000 1.5
+++ head.html 20 Jul 2009 14:56:54 -0000 1.6
@@ -2,6 +2,6 @@
xmlns="http://www.w3.org/1999/xhtml">
<meta charset="utf-8"/><title>HTML 5: The Markup Language</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
- <link rel="stylesheet" href="http://www.w3.org/StyleSheets/TR/W3C-ED" type="text/css"/>
+ <link rel="stylesheet" href="W3C-ED.css" type="text/css"/>
<script src="js/dfn.js"></script>
</head>
Index: syntax.html
===================================================================
RCS file: /sources/public/html5/markup/src/syntax.html,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -d -r1.57 -r1.58
--- syntax.html 14 Jul 2009 16:30:16 -0000 1.57
+++ syntax.html 20 Jul 2009 14:56:54 -0000 1.58
@@ -14,10 +14,10 @@
or
<a href="#doctype.legacy">doctype.legacy</a>
patterns defined this specification, or must match the
- definition of a
- <code class="defined-elsewhere">doctypedecl</code>
- (<b class="defined-elsewhere">document type declaration</b>)
- given in the XML specification
+ <a
+ href="http://www.w3.org/TR/2006/REC-xml-20060816/#NT-doctypedecl"
+ ><code class="defined-elsewhere">doctypedecl</code></a>
+ production defined in the XML specification
<a href="#refsXML">[XML]</a>.</p>
<p>The <code>doctype</code> pattern is defined as follows:</p>
<dl class="pattern-def">
@@ -90,7 +90,8 @@
declaration must be serialized completely within the first
512 bytes of the document.</li>
</ul>
- <p>If the document does not start with a BOM, and if its
+ <p>If the document does not start with a
+ U+FEFF BYTE ORDER MARK (BOM) character, and if its
encoding is not explicitly given by a
<code>Content-Type</code> HTTP header, then the character
encoding used must be an
@@ -152,17 +153,16 @@
that it contains.
Attributes and their values are not considered to be the
“contents” of an element.</p>
- <p>An element whose <a href="#content-model">content model</a>
+ <p>A
+ <dfn id="void-element" title="void-element">void element</dfn>
+ is an element whose <a href="#content-model">content model</a>
does not allow it to have
- <a href="#contents">contents</a>
- is said to be a
- <dfn id="void-element" title="void-element">void element</dfn>.
+ <a href="#contents">contents</a>.
Void elements can have attributes.</p>
- <p>The following is a complete list of the void elements in
- HTML.</p>
- <dl>
- <dt><dfn id="void-elements">Void elements</dfn></dt>
- <dd>
+ <p>The following is a complete list of the
+ <dfn id="void-elements">void elements in HTML</dfn>:</p>
+ <ul>
+ <li>
<code><a href="#area">area</a></code>,
<code><a href="#base">base</a></code>,
<code><a href="#br">br</a></code>,
@@ -176,8 +176,8 @@
<code><a href="#meta">meta</a></code>,
<code><a href="#param">param</a></code>,
<code><a href="#source">source</a></code>
- </dd>
- </dl>
+ </li>
+ </ul>
<p id="elements-html-syntax">The following list describes syntax
rules for the
<a href="#html-syntax">the HTML syntax</a>.
@@ -197,68 +197,72 @@
indicate where they end.</li>
<li><dfn id="tag-name" title="syntax-tag-name">Tag names</dfn>
are used within element start tags and end tags to
- give the element's name. HTML elements all have names that
- only use characters in the range U+0030 DIGIT ZERO .. U+0039
- DIGIT NINE, U+0061 LATIN SMALL LETTER A .. U+007A LATIN
- SMALL LETTER Z, U+0041 LATIN CAPITAL LETTER A .. U+005A
- LATIN CAPITAL LETTER Z, and U+002D HYPHEN-MINUS
- (<code>-</code>). Tag names may be written with any mix of
+ give the element’s name. HTML elements all have names that
+ only use characters in the range
+ <code title="U+0030 DIGIT ZERO–U+0039 DIGIT NINE">0–9</code>,
+ <code title="U+0061 LATIN SMALL LETTER A–U+007A LATIN SMALL LETTER Z">a–z</code>,
+ <code title="U+0041 LATIN CAPITAL LETTER A–U+005A LATIN CAPITAL LETTER Z">A–Z</code>,
+ and the character
+ "<code title="U+002D HYPHEN-MINUS">-</code>".
+ Tag names may be written with any mix of
lowercase and uppercase letters that, when converted to
- all-lowercase, matches the element's tag name; tag names are
+ all-lowercase, matches the element’s tag name; tag names are
case-insensitive.</li>
<li>
<dfn id="syntax-start-tags">Start tags</dfn>
must have the following format:
-
<ol>
- <li>The first character of a start tag must be a U+003C
- LESS-THAN SIGN (<code><</code>).</li>
+ <li>The first character of a start tag must be a
+ "<code title="U+003C LESS-THAN SIGN"><</code>"
+ character.</li>
<li>The next
- few characters of a start tag must be the element's
+ few characters of a start tag must be the element’s
<a href="#tag-name" title="syntax-tag-name">tag name</a>.</li>
<li>If there are to be any attributes in the next step,
there must first be one or more
<a href="#space"
title="space character">space characters</a>.</li>
<li>Then, the start tag may have
- a number of attributes, the
- <a href="#attribute"
- title="syntax-attributes">syntax for which</a> is
- described below. Attributes may be separated from each
- other by one or more
- <a href="#space"
- title="space character">space characters</a>.</li>
- <li>After the attributes, the start tag may have one or more
- <a href="#space"
- title="space character">space characters</a>. (Some
- attributes are required to be followed by a space. See the
- <a href="#attribute"
- title="syntax-attributes">attributes section</a>
- below.)</li>
- <li>Start tags must be closed by a U+003E GREATER-THAN
- SIGN (<code>></code>) character.</li>
+ a number of
+ <a href="#attribute">attributes</a>,
+ which may be separated from each other by one or more
+ <a href="#space">space characters</a>.</li>
+ <li>After any
+ <a href="#attribute">attributes</a>,
+ the start tag may have one or more
+ <a href="#space">space characters</a>.
+ (Note that some
+ <a href="#attribute">attributes</a>
+ are <em>required</em> to be followed by a space.</li>
+ <li>A start tag must be closed by a
+ "<code title="U+003E GREATER-THAN SIGN">></code>"
+ character.
+ <a href="#void-element">Void elements</a>
+ may have a single
+ "<code title="U+002F SOLIDUS">/</code>"
+ character before the closing
+ "<code title="U+003E GREATER-THAN SIGN">></code>"
+ character.</li>
</ol>
</li>
<li>
<dfn id="syntax-end-tags">End tags</dfn>
must have the following format:
<ol>
- <li>The first character of an end tag must be a U+003C
- LESS-THAN SIGN (<code><</code>).</li>
- <li>The second character of an end tag must be a U+002F
- SOLIDUS (<code>/</code>).</li>
+ <li>The first character of an end tag must be a
+ "<code title="U+003C LESS-THAN SIGN"><</code>"
+ character.</li>
+ <li>The second character of an end tag must be a
+ "<code title="U+002F SOLIDUS">/</code>"
+ character</li>
<li>The next few characters of an end tag must be the
- element's
+ element’s
<a href="#tag-name" title="syntax-tag-name">tag name</a>.</li>
<li>After the tag name, there may be one or more
<a href="#space" title="space character">space characters</a>.</li>
- <li>Finally, end tags must be closed by a U+003E
- GREATER-THAN SIGN (<code>></code>) character.
- If an element is a
- <a href="#void-element">void element</a>,
- then it may have a single U+002F SOLIDUS
- (<code>/</code>) character before the closing U+003E
- GREATER-THAN SIGN (<code>></code>) character.</li>
+ <li>An end tag must be closed by a
+ "<code title="U+003E GREATER-THAN SIGN">></code>"
+ character.</li>
</ol>
</li>
<li><a href="#void-element">Void elements</a> only have a
@@ -289,7 +293,10 @@
<p>
<dfn id="attribute" title="syntax-attributes">Attributes</dfn>
for an element are expressed inside the element’s start
- tag. Attributes have a name and a value.</p>
+ tag. Attributes have a
+ <a href="#attribute-name">name</a>
+ and a
+ <a href="#syntax-attribute-value">value</a>.</p>
<p>There must never be two or more attributes on the same
start tag whose names are an
<a href="#ascii-case-insensitive">ASCII case-insensitive</a>
@@ -307,22 +314,26 @@
title="syntax-attribute-name">Attribute names</dfn>
must consist of one or more characters other than the
<a href="#space">space characters</a>,
- U+0000 NULL, U+0022 QUOTATION MARK ("), U+0027 APOSTROPHE
- ('), U+003E GREATER-THAN SIGN (>), U+002F SOLIDUS (/),
- and U+003D EQUALS SIGN (=) characters, the control
- characters, and any characters that are not defined by
- Unicode. Attribute names may be
- written with any mix of lowercase and uppercase letters that
- are an
+ U+0000 NULL,
+ "<code title="U+0022 QUOTATION MARK">"</code>",
+ "<code title="U+0027 APOSTROPHE">'</code>",
+ "<code title="U+003E GREATER-THAN SIGN">></code>",
+ "<code title="U+002F SOLIDUS">/</code>",
+ "<code title="U+003D EQUALS SIGN">=</code>",
+ the control characters,
+ and any characters that are not defined by Unicode.
+ Attribute names may be written with any mix of lowercase and
+ uppercase letters that are an
<a href="#ascii-case-insensitive">ASCII case-insensitive</a>
match for the attribute’s name.</li>
<li><dfn id="xml-compatible">XML-compatible</dfn>
attribute names are those that match the
- <a href="http://www.w3.org/TR/REC-xml/#NT-Name"><code>Name</code></a>
- production defined in
+ <a href="http://www.w3.org/TR/REC-xml/#NT-Name"
+ ><code>Name</code></a> production defined in
the XML specification <a href="#refsXML">[XML]</a>
- and that contain no U+003A COLON (:) characters, and whose first
- three characters are not an
+ and that contain no
+ "<code title="U+003A COLON">:</code>"
+ characters, and whose first three characters are not an
<a href="#ascii-case-insensitive">ASCII case-insensitive</a>
match for the string "<code>xml</code>".</li>
<li>
@@ -351,10 +362,10 @@
<pre><input <em>disabled</em>></pre>
</div>
<p>If an attribute using the empty attribute syntax is
- to be followed by another attribute, then there must
- be a
+ followed by another attribute, then there must be at
+ least one
<a href="#space">space character</a>
- separating the two.</p>
+ between the value and the other attribute.</p>
</dd>
<dt><dfn id="syntax-attr-unquoted"
title="syntax-attr-unquoted"
@@ -364,22 +375,27 @@
the <a href="#attribute-name">attribute name</a>,
followed by zero or more
<a href="#space">space characters</a>,
- followed by a single U+003D EQUALS SIGN character,
- followed by zero or more
+ followed by a single
+ "<code title="U+003D EQUALS SIGN">=</code>"
+ character, followed by zero or more
<a href="#space">space characters</a>,
followed by the
<a href="#syntax-attribute-value" >attribute value</a>.</p>
<p>In addition to the general requirements given above for
attribute values, an
<dfn id="attr-value-unquoted"
- title="attr-value-unquoted">unquoted attribute value</dfn>
- must not contain any literal
- <a href="#space">space characters</a>,
- any U+0022 QUOTATION MARK (<code>"</code>) characters,
- U+0027 APOSTROPHE (<code>'</code>) characters, U+003D
- EQUALS SIGN (<code>=</code>) characters, or U+003E
- GREATER-THAN SIGN (<code>></code>) characters, and
- must not be the empty string.</p>
+ title="attr-value-unquoted">unquoted attribute value</dfn>:</p>
+ <ul>
+ <li>must not contain any literal
+ <a href="#space">space characters</a></li>
+ <li>must not contain any
+ "<code title="U+0022 QUOTATION MARK">"</code>",
+ "<code title="U+0027 APOSTROPHE">'</code>",
+ "<code title="U+003E GREATER-THAN SIGN">></code>",
+ "<code title="U+003D EQUALS SIGN">=</code>",
+ characters</li>
+ <li>must not be the empty string</li>
+ </ul>
<div class="example">
<p>In the following example, the
<code title="attr-input-value">value</code>
@@ -387,14 +403,19 @@
syntax:</p>
<pre><input <em>value=yes</em>></pre>
</div>
- <p>If an attribute using the unquoted attribute syntax
- is to be followed by another attribute or by one of
- the optional U+002F SOLIDUS (<code>/</code>)
- characters allowed in step 6 of the
- <span title="syntax-start-tag">start tag</span> syntax
- above, then there must be a
- <a href="#space">space character</a> separating the
- two.</p>
+ <p>If the value an attribute using the unquoted
+ attribute syntax is followed by another attribute,
+ then there must be at least one
+ <a href="#space">space character</a>
+ between the value and the other attribute.</p>
+ <p>If the value of an attribute using the unquoted
+ attribute syntax is followed by a
+ "<code title="U+002F SOLIDUS">/</code>"
+ character, then there must be at least one
+ <a href="#space">space character</a>
+ after the value and before the
+ "<code title="U+002F SOLIDUS">/</code>"
+ character.</p>
</dd>
<dt><dfn id="syntax-attr-single-quoted">Single-quoted attribute-value syntax</dfn></dt>
<dd>
@@ -403,21 +424,25 @@
<a href="#attribute-name">attribute name</a>,
followed by zero or more
<a href="#space">space characters</a>,
- followed by a single U+003D EQUALS SIGN character,
- followed by zero or more
+ followed by a single
+ "<code title="U+003D EQUALS SIGN">=</code>"
+ character, followed by zero or more
<a href="#space">space characters</a>,
- followed by a single U+0027 APOSTROPHE (<code>'</code>)
+ followed by a single
+ "<code title="U+0027 APOSTROPHE">'</code>"
character, followed by the
<a href="#syntax-attribute-value">attribute value</a>,
- and finally followed by a matching single U+0027
- APOSTROPHE (<code>'</code>) character.</p>
+ followed by a single
+ "<code title="U+0027 APOSTROPHE">'</code>"
+ character.</p>
<p>In addition to the general requirements given above
for attribute values, a
<dfn id="attr-value-single-quoted"
title="attr-value-single-quoted"
>single-quoted attribute value</dfn>
- must not contain any literal U+0027
- APOSTROPHE (<code>'</code>) characters.</p>
+ must not contain any literal
+ "<code title="U+0027 APOSTROPHE">'</code>"
+ characters.</p>
<div class="example">
<p>In the following example, the
<code title="attr-input-type">type</code> attribute
@@ -425,10 +450,11 @@
syntax:</p>
<pre><input <em>type='checkbox'</em>></pre>
</div>
- <p>If an attribute using the single-quoted attribute
- syntax is to be followed by another attribute, then
- there must be a <a href="#space">space character</a>
- separating the two.</p>
+ <p>If the value of an attribute using the single-quoted
+ attribute syntax is followed by another attribute, then
+ there must be at least one
+ <a href="#space">space character</a>
+ after the value and before the other attribute.</p>
</dd>
<dt><dfn id="syntax-attr-double-quoted">Double-quoted attribute-value syntax</dfn></dt>
<dd>
@@ -437,32 +463,36 @@
<a href="#attribute-name">attribute name</a>,
followed by zero or more
<a href="#space">space characters</a>,
- followed by a single U+003D EQUALS SIGN character,
- followed by zero or more
+ followed by a single
+ "<code title="U+003D EQUALS SIGN character">=</code>"
+ character, followed by zero or more
<a href="#space">space characters</a>,
- followed by a single U+0022 QUOTATION MARK
- (<code>"</code>) character, followed by the
+ followed by a single
+ "<code title="U+0022 QUOTATION MARK">"</code>" character,
+ followed by the
<a href="#syntax-attribute-value">attribute value</a>,
- and finally followed by a matching double U+0022 QUOTATION
- MARK (<code>"</code>) character.</p>
+ and followed by a
+ "<code title="double U+0022 QUOTATION MARK">"</code>"
+ character.</p>
<p>In addition to the general requirements given above for
- attribute values, an
+ attribute values, a
<dfn id="attr-value-double-quoted"
title="attr-value-double-quoted"
>double-quoted attribute value</dfn>
- must not
- contain any literal U+0022 QUOTATION MARK (<code>"</code>)
+ must not contain any literal
+ "<code title="U+0022 QUOTATION MARK">"</code>"
characters.</p>
<div class="example">
<p>In the following example, the
- <code title="attr-input-name">name</code> attribute is
+ <code>title</code> attribute is
given with the double-quoted attribute value syntax:</p>
- <pre><input <em>name="be evil"</em>></pre>
+ <pre><code title="U+003C LESS-THAN SIGN">&lt;</code></pre>
</div>
- <p>If an attribute using the double-quoted attribute
- syntax is to be followed by another attribute, then
- there must be a <a href="#space">space character</a>
- separating the two.</p>
+ <p>If the value of attribute using the double-quoted
+ attribute syntax is followed by another attribute, then
+ there must be at least one
+ <a href="#space">space character</a>
+ after the value and before the other attribute.</p>
</dd>
</dl>
</section>
@@ -483,10 +513,12 @@
<li>must not contain control characters other than
<a href="#space">space characters</a></li>
</ul>
- <p class="note">There is a special type of
+ <p class="note">There are two special types of
<a href="#syntax-text">text</a>,
- known as an
- <a href="#syntax-escape">escaping text span</a>,
+ known as
+ <a href="#syntax-escape-start">escaping text span starts</a>
+ and
+ <a href="#syntax-escape-end">escaping text span ends</a>,
that can occur within certain elements.</p>
<p><dfn
id="character-data"
@@ -550,17 +582,22 @@
<li>must not contain any
<a href="#syntax-ambiguous-ampersand">ambiguous ampersands</a></li>
<li>must not contain any occurrences of the string
- "<code></</code>" (U+003C LESS-THAN SIGN,
- U+002F SOLIDUS) followed by characters that
+ "<code title="U+003C LESS-THAN SIGN, U+002F SOLIDUS"></</code>"
+ followed by characters that
case-insensitively match the tag name of the
element containing the replaceable character data
- (for example, "<code></title</code>" or
+ (for example,
+ "<code></title</code>" or
"<code></textarea</code>"),
- followed by one of U+0009 CHARACTER TABULATION,
- U+000A LINE FEED (LF), U+000C FORM FEED (FF),
- U+0020 SPACE, U+003E GREATER-THAN SIGN (>), or
- U+002F SOLIDUS (/), unless that string is part of
- an
+ followed by one of
+ U+0009 CHARACTER TABULATION,
+ U+000A LINE FEED (LF),
+ U+000C FORM FEED (FF),
+ U+0020 SPACE,
+ "<code title="U+003E GREATER-THAN SIGN">></code>",
+ or
+ "<code title="U+002F SOLIDUS">/</code>",
+ unless that string is part of an
<a href="#syntax-escape">escaping text span</a>.</li>
</ul>
<p class="note">Replaceable character data,
@@ -600,17 +637,21 @@
<ul>
<li>must not contain <a href="#syntax-charref">character references</a></li>
<li>must not contain any occurrences of the string
- "<code></</code>" (U+003C LESS-THAN SIGN,
- U+002F SOLIDUS) followed by characters that
- case-insensitively match the tag name of the
- element containing the replaceable character data
- (for example, "<code></script</code>" or
+ "<code title="U+003C LESS-THAN SIGN, U+002F SOLIDUS"></</code>",
+ followed by characters that case-insensitively match the
+ tag name of the element containing the replaceable
+ character data (for example,
+ "<code></script</code>" or
"<code></style</code>"),
- followed by one of U+0009 CHARACTER TABULATION,
- U+000A LINE FEED (LF), U+000C FORM FEED (FF),
- U+0020 SPACE, U+003E GREATER-THAN SIGN (>), or
- U+002F SOLIDUS (/), unless that string is part of
- an
+ followed by one of
+ U+0009 CHARACTER TABULATION,
+ U+000A LINE FEED (LF),
+ U+000C FORM FEED (FF),
+ U+0020 SPACE,
+ "<code title="U+003E GREATER-THAN SIGN">></code>",
+ or
+ "<code title="U+002F SOLIDUS">/</code>",
+ unless that string is part of an
<a href="#syntax-escape">escaping text span</a>.</li>
</ul>
<p class="note">Non-replaceable character data,
@@ -629,65 +670,128 @@
<section id="character-references">
<h2>Character references</h2>
<p><dfn id="syntax-charref">Character references</dfn> are a form
- of markup for representing individual characters.
- Character references must start with a U+0026 AMPERSAND
- (<code>&</code>). Following that, there are three possible
- kinds of character references:</p>
+ of markup for representing single individual characters. There
+ are three types of character references:</p>
+ <ul>
+ <li><a href="#named-charref">named character references</a></li>
+ <li><a href="#dec-charref">decimal numeric character references</a></li>
+ <li><a href="#hex-charref">hexadecimal numeric character references</a></li>
+ </ul>
<dl>
<dt><dfn id="named-charref">Named character reference</dfn></dt>
- <dd>The ampersand must be followed by one of the entity
- names defined in <cite>XML Entity definitions
- for Characters</cite> <a
- href="#refsEntities">[Entities]</a>, using the same
- case, terminated by a U+003B SEMICOLON (<code
- title="">;</code>) character.</dd>
+ <dd><p>A named character reference is an
+ "<code title="U+0026 AMPERSAND">&</code>"
+ character followed by one of the entity names defined in
+ <cite>XML Entity definitions for Characters</cite>
+ <a href="#refsEntities">[Entities]</a>,
+ using the same case, followed by a
+ "<code title="U+003B SEMICOLON">;</code>"
+ character.</p>
+ <div class="example">
+ <p>The following is an example of a named character
+ reference for the character
+ "<code title="U+2020 DAGGER">†</code>"
+ (U+2020 DAGGER).</p>
+ <pre>&dagger;</pre>
+ </div>
+ </dd>
<dt><dfn id="dec-charref">Decimal numeric character reference</dfn></dt>
- <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
- (<code>#</code>) character, followed by one or more digits in
- the range U+0030 DIGIT ZERO .. U+0039 DIGIT NINE, representing
- a base-ten integer that itself is a Unicode code point that is
- not U+0000, U+000D, in the range U+0080 .. U+009F, or in the
- range 0xD800 .. 0xDFFF (surrogates). The digits must then be
- followed by a U+003B SEMICOLON character
- (<code title="">;</code>).</dd>
+ <dd><p>A decimal numerical character reference is an
+ "<code title="U+0026 AMPERSAND">&</code>"
+ character, followed by a
+ "<code title="U+0023 NUMBER SIGN">#</code>"
+ character, followed by one or more digits in the range
+ <code title="U+0030 DIGIT ZERO–U+0039 DIGIT NINE">0–9</code>,
+ representing a base-ten integer that itself is a Unicode
+ code point that is not
+ U+0000,
+ U+000D,
+ in the range U+0080–U+009F,
+ or in the range 0xD8000–0xDFFF (surrogates).
+ The digits must then be followed by a
+ "<code title="U+003B SEMICOLON">;</code>" character.</p>
+ <div class="example">
+ <p>The following is an example of a decimal numeric
+ character reference for the character
+ "<code title="U+2020 DAGGER">†</code>"
+ (U+2020 DAGGER).</p>
+ <pre>&#8224;</pre>
+ </div>
+ </dd>
<dt><dfn id="hex-charref">Hexadecimal numeric character reference</dfn></dt>
- <dd>The ampersand must be followed by a U+0023 NUMBER SIGN
- (<code>#</code>) character, which must be followed by
- either a U+0078 LATIN SMALL LETTER X or a U+0058 LATIN
- CAPITAL LETTER X character, which must then be followed by
- one or more digits in the range U+0030 DIGIT ZERO ..
- U+0039 DIGIT NINE, U+0061 LATIN SMALL LETTER A .. U+0066
- LATIN SMALL LETTER F, and U+0041 LATIN CAPITAL LETTER A ..
- U+0046 LATIN CAPITAL LETTER F, representing a base-sixteen
- integer that itself is a Unicode code point that is not
- U+0000, U+000D, in the range U+0080 .. U+009F, or in the
- range 0xD800 .. 0xDFFF (surrogates). The digits must then
- be followed by a U+003B SEMICOLON character
- (<code title="">;</code>).</dd>
+ <dd><p>A hexadecimal numeric character reference is an
+ "<code title="U+0026 AMPERSAND">&</code>"
+ character, followed by a
+ "<code title="U+0023 NUMBER SIGN">#</code>"
+ character, followed by either a
+ "<code title="U+0078 LATIN SMALL LETTER X">x</code>"
+ character
+ or a
+ "<code title="U+0058 LATIN CAPITAL LETTER X">X</code>"
+ character, followed by
+ one or more digits in the range
+ <code title="U+0030 DIGIT ZERO–U+0039 DIGIT NINE">0–9</code>,
+ <code title="U+0061 LATIN SMALL LETTER A–U+0066 LATIN SMALL LETTER F">a–f</code>,
+ and
+ <code title="U+0041 LATIN CAPITAL LETTER A–U+0046 LATIN CAPITAL LETTER F">A–F</code>,
+ representing a base-sixteen integer that itself is a Unicode
+ code point that is not
+ U+0000,
+ U+000D,
+ in the range U+0080–U+009F,
+ or in the range 0xD800–0xDFFF (surrogates).
+ The digits must then be followed by a
+ "<code title="U+003B SEMICOLON">;</code>"
+ character.</p>
+ <div class="example">
+ <p>The following is an example of a hexadecimal numeric
+ character reference for the character
+ "<code title="U+2020 DAGGER">†</code>"
+ (U+2020 DAGGER).</p>
+ <pre>&#x2020;</pre>
+ </div>
+ </dd>
</dl>
+ <p class="note">
+ <a href="#syntax-charref">Character references</a>
+ are not themselves
+ <a href="#syntax-text">text</a>,
+ and no part of a character reference is
+ <a href="#syntax-text">text</a>.</p>
<p>An
<dfn id="syntax-ambiguous-ampersand">ambiguous ampersand</dfn>
- is a U+0026 AMPERSAND (<code>&</code>) character that is
- followed by some
- <a href="#syntax-text" title="syntax-text">text</a> other than a
- <a href="#space">space character</a>, a U+003C LESS-THAN
- SIGN character ('<'), or another U+0026 AMPERSAND
- (<code>&</code>) character.</p>
+ is an
+ "<code title="U+0026 AMPERSAND">&</code>"
+ character that is followed by some
+ <a href="#syntax-text" title="syntax-text">text</a>
+ other than a
+ <a href="#space">space character</a>,
+ a
+ "<code title="U+003C LESS-THAN SIGN"><</code>",
+ character, or another
+ "<code title="U+0026 AMPERSAND">&</code>"
+ character.</p>
</section>
<section id="comments">
<h2>Comments</h2>
<p>
<dfn id="syntax-comments" title="syntax-comments">Comments</dfn>
- consist of the following three parts, in exactly the following
+ consist of the following parts, in exactly the following
order:</p>
<ol>
- <li>the string
+ <li>the
+ <dfn
+ id="comment-start-delimiter"
+ title="comment-start-delimiter">comment start delimiter</dfn>
"<code
title="U+003C LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS"
><!--</code>"
</li>
<li><a href="#syntax-text">text</a></li>
- <li>the string
+ <li>the
+ <dfn
+ id="comment-end-delimiter"
+ title="comment-end-delimiter">comment end delimiter</dfn>
"<code
title="U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN"
>--></code>"
@@ -742,23 +846,42 @@
<a href="#syntax-charref">character references</a>.</p>
<p>An
<dfn id="syntax-escape-start">escaping text span start</dfn>
- is a part of <a href="#syntax-text" title="syntax-text">text</a> that
- consists of the four character sequence
- "<code title=""><!--</code>" (U+003C LESS-THAN SIGN,
- U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS, U+002D
- HYPHEN-MINUS).</p>
+ is the
+ <a href="#syntax-text" title="syntax-text">text</a>
+ string
+ "<code title="U+003C LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS"><!--</code>".</p>
<p>An
<dfn id="syntax-escape-end">escaping text span end</dfn>
- is a part of
- <a href="#syntax-text" title="syntax-text">text</a> that
- consists of the three character sequence
- "<code title="">--></code>" (U+002D HYPHEN-MINUS,
- U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN) whose
- U+003E GREATER-THAN SIGN (>).</p>
- <p>An <a href="#syntax-escape-start">escaping text span
- start</a> may share its U+002D HYPHEN-MINUS characters with its
- corresponding <a href="#syntax-escape-end">escaping text
- span end</a>.</p>
+ is the
+ <a href="#syntax-text" title="syntax-text">text</a>
+ string
+ "<code title="U+002D HYPHEN-MINUS, U+002D HYPHEN-MINUS, U+003E GREATER-THAN SIGN">--></code>".</p>
+ <div class="note">
+ <ul>
+ <li>An
+ <a href="#syntax-escape">escaping text span</a>
+ is not a
+ <a href="#syntax-comments">comment</a>.</li>
+ <li>An
+ <a href="#syntax-escape-start">escaping text span start</a>
+ is
+ <a href="#syntax-text">text</a>;
+ it is not a
+ <a href="#comment-start-delimiter">comment start delimiter</a>.</li>
+ <li>An
+ <a href="#syntax-escape-end">escaping text span end</a>
+ is
+ <a href="#syntax-text">text</a>;
+ it is not a
+ <a href="#comment-end-delimiter">comment end delimiter</a>.</li>
+ </ul>
+ </div>
+ <p>An
+ <a href="#syntax-escape-start">escaping text span start</a>
+ may share its
+ "<code title="U+002D HYPHEN-MINUS">-</code>"
+ characters with its corresponding
+ <a href="#syntax-escape-end">escaping text span end</a>.</p>
<p>The text in <a href="#style">style</a>, <a
href="#script">script</a>, <a href="#title">title</a>, and
<a href="#textarea">textarea</a>
@@ -766,6 +889,17 @@
<a href="#syntax-escape-start">escaping text span start</a>
that is not followed by an
<a href="#syntax-escape-end">escaping text span end</a>.</p>
+ <div class="example">
+ <p>The following is an example of an
+ <a href="#syntax-escape">escaping text span</a>
+ within a
+ <a href="#style" class="element">style</a> element.</p>
+ <pre><style>
+<!--
+dfn { font-weight: bold; color: brown; }
+-->
+</style></pre>
+ </div>
</section>
<section id="svg-mathml">
<h2>SVG and MathML elements in HTML documents</h2>
@@ -784,14 +918,16 @@
are defined in the XML specification
<a href="#refsXML">[XML]</a>.
The following list describes additional syntax rules
- that specifically apply only to SVG and MathML elements in
+ that specifically apply to SVG and MathML elements in
<a href="#syntax-document-html">documents in the HTML syntax</a>.
</p>
<ul>
<li>SVG and MathML elements whose start tags
- have a single U+002F SOLIDUS (<code>/</code>) character
- before the closing U+003E GREATER-THAN SIGN
- (<code>></code>) character are said to be
+ have a single
+ "<code title="U+002F SOLIDUS">/</code>"
+ character before the closing
+ "<code title="U+003E GREATER-THAN SIGN">></code>"
+ character are said to be
<dfn id="syntax-self-closing">marked as self-closing</dfn>.</li>
<li>SVG and MathML elements must either have a
<a href="#syntax-start-tags">start tag</a>
@@ -803,19 +939,19 @@
<li>SVG and MathML elements whose start tag is
<a href="#syntax-self-closing">marked as self-closing</a>,
can’t have any contents.</li>
- <li>The contents of an SVG or MathML element whose start tag
- is <em>not</em>
+ <li>The contents of an SVG or MathML element whose start tag is not
<a href="#syntax-self-closing">marked as self-closing</a>
are any
<a href="#syntax-elements">elements</a>,
+ <a href="#character-data">character data</a>,
<a href="#syntax-comments">comments</a>,
- <a href="#syntax-cdata-sections">CDATA sections</a>,
- <a href="#syntax-charref">character references</a>,
- or
- <a href="#syntax-text">text</a> that it contains;
- but the text must not contain the character U+003C
- LESS-THAN SIGN (<code><</code>) or an
- <a href="#syntax-ambiguous-ampersand">ambiguous ampersand</a>.</li>
+ and
+ <a href="#syntax-cdata-sections">CDATA sections</a>
+ that it contains, with the restriction
+ that any
+ <a href="#character-data">character data</a>
+ it contains must be
+ <a href="#normal-character-data">normal character data</a>.</li>
</ul>
</section>
<section id="cdata-sections">
@@ -823,26 +959,30 @@
<p>
<dfn
id="syntax-cdata-sections"
- title="syntax-cdata-sections">CDATA sections in MathML and SVG contents</dfn>
+ title="syntax-cdata-sections">CDATA sections in SVG and MathML contents</dfn>
in
<a href="#syntax-document-html">documents in the HTML syntax</a>
- must start with the character sequence U+003C LESS-THAN
- SIGN, U+0021 EXCLAMATION MARK, U+005B LEFT SQUARE BRACKET,
- U+0043 LATIN CAPITAL LETTER C, U+0044 LATIN CAPITAL LETTER
- D, U+0041 LATIN CAPITAL LETTER A, U+0054 LATIN CAPITAL
- LETTER T, U+0041 LATIN CAPITAL LETTER A, U+005B LEFT SQUARE
- BRACKET (<code title=""><![CDATA[</code>). Following that
- sequence, the CDATA section may have
- <a href="#syntax-text" title="syntax-text">text</a>, with the
- additional restriction that the text must not contain the
- three character sequence U+005D RIGHT SQUARE BRACKET, U+005D
- RIGHT SQUARE BRACKET, U+003E GREATER-THAN SIGN
- (<code title="">]]></code>). Finally, the CDATA section must
- be ended by the three character sequence U+005D RIGHT SQUARE
- BRACKET, U+005D RIGHT SQUARE BRACKET, U+003E GREATER-THAN
- SIGN (<code title="">]]></code>).</p>
+ consist of the following parts, in exactly the following
+ order:</p>
+ <ol>
+ <li>the
+ <dfn
+ id="cdata-start-delimiter"
+ title="cdata-start-delimiter">CDATA start delimiter</dfn>
+ "<code title="U+003C LESS-THAN SIGN, U+0021 EXCLAMATION MARK, U+005B LEFT SQUARE BRACKET, U+0043 LATIN CAPITAL LETTER C, U+0044 LATIN CAPITAL LETTER D, U+0041 LATIN CAPITAL LETTER A, U+0054 LATIN CAPITAL LETTER T, U+0041 LATIN CAPITAL LETTER A, U+005B LEFT SQUARE BRACKET"
+ ><![CDATA[</code>"</li>
+ <li><a href="#syntax-text" title="syntax-text">text</a>, with the
+ additional restriction that the text must not contain the
+ string
+ "<code title="U+005D RIGHT SQUARE BRACKET, U+005D RIGHT SQUARE BRACKET, U+003E GREATER-THAN SIGN">]]></code>“</li>
+ <li>the
+ <dfn
+ id="cdata-end-delimiter"
+ title="cdata-end-delimiter">CDATA end delimiter</dfn>
+ "<code title="U+005D RIGHT SQUARE BRACKET, U+005D RIGHT SQUARE BRACKET, U+003E GREATER-THAN SIGN">]]></code>"</li>
+ </ol>
<p>CDATA sections are allowed only in the contents of elements
- from the MathML namespace.</p>
+ from the SVG and MathML namespaces.</p>
<div class="example">
<p>The following shows an example of a CDATA section.</p>
<pre>
Received on Monday, 20 July 2009 14:57:06 UTC