<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>随网之舞W3C</title>
	<atom:link href="http://dancewithnet.com/tag/w3c/feed/" rel="self" type="application/rss+xml" />
	<link>http://dancewithnet.com</link>
	<description>WEB Design{HTML:CSS:Javascript:DOM:AJAX:PHP:Usability}/Viewpoint/Photo/Food/Mood</description>
	<lastBuildDate>Mon, 18 Jul 2011 02:45:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>HTML和XHTML的不同</title>
		<link>http://dancewithnet.com/2007/10/28/differences-between-html-and-xhtml/</link>
		<comments>http://dancewithnet.com/2007/10/28/differences-between-html-and-xhtml/#comments</comments>
		<pubDate>Sat, 27 Oct 2007 18:12:31 +0000</pubDate>
		<dc:creator>秦歌</dc:creator>
				<category><![CDATA[HTML & CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[WHATWG]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://dancewithnet.com/2007/10/28/differences-between-html-and-xhtml/</guid>
		<description><![CDATA[
MIME[1]类型（MIME Types）
解析（Parsing）
语法（Syntax）
标记（Markup）
字符编码（Character Encoding）
脚本（Scripts）
样式表（Stylesheets）

请注意以下信息是基于(X)HTML5的当前规范，某些技术上问题并... ]]></description>
			<content:encoded><![CDATA[<ol>
<li><a href="#mime-types">MIME<sup>[1]</sup>类型（MIME Types）</a></li>
<li><a href="#parsing">解析（Parsing）</a></li>
<li><a href="#syntax">语法（Syntax）</a></li>
<li><a href="#markup">标记（Markup）</a></li>
<li><a href="#character-encoding">字符编码（Character Encoding）</a></li>
<li><a href="#scripts">脚本（Scripts）</a></li>
<li><a href="#stylesheets">样式表（Stylesheets）</a></li>
</ol>
<p><strong>请注意以下信息是基于(X)HTML5的当前规范，某些技术上问题并不适用于HTML的早先版本。</strong></p>
<p>虽然HTML和XHTML看起来在语法上类似，但在很多方面显著的不同。<span id="more-1144"></span></p>
<p>注：由于当前的WHATWG<sup>[2]</sup>文档是一个草案，这个部分需要跟随一个变化的对象。标记@@@的不同是从理论上可以被改变且不影响向后兼容的不同。</p>
<h3 id="mime-types">MIME类型（MIME Types）</h3>
<ol>
<li>XHTML必须以XML MIME类型来提供，例如application/xml 或 application/xhtml+xml。</li>
<li>HTML必须以text/html来提供。</li>
</ol>
<p>MIME类型决定了使用文件的类型。如果尝试使用text/html来发送XHTML，你实际上仅使用了HTML，可能有语法错误。</p>
<p>技术上，依据规范，XHTML1.0被允许作为text/html来发送。但是正是由于上面的原因，这样的一个文件被认为是HTML文件而不是XHTML文件</p>
<h3 id="parsing">解析（Parsing）</h3>
<p>XHTML用XML解析请求。HTML用它自己定义的更接近当前浏览器实际处理HTML的方式。</p>
<ol>
<li>在XHTML中，良构性（well-formedness）错误是致命的。在HTML中，错误处理规则更加优雅。良构性错误在HTML也是语法错误，包括以下：
<ol>
<li>未编码的和符号（&amp;替代&amp;amp;）和小于符号（&lt;替代&amp;lt;）（这并不应用于CDATA）。（注：在HTML中，未编码的和符号在一些情况下是被允许的。）</li>
<li>注释包含额外的连接字符或以一个连接字符结尾。例如：<code>&lt;!-- 语法 -- 错误 --&gt; or &lt;!-- 语法错误 ---&gt;</code></li>
<li>不匹配结束标签。（不适用于可选标签元素）</li>
<li>不闭合标签。</li>
<li>非法字符出现在属性名称前或中。</li>
<li>文件结束（EOF）意外发生。</li>
<li>非法的字符出现在DOCTYPE名前。</li>
<li>丢失DOCTYPE名。</li>
<li>在DOCTYPE中PUBLIC标识符没有SYSTEM标识符。（注：在HTML5中包含这些中的任何一个是语法错误，在XML中允许唯一的SYSTEM标识符出现在它自己中。）</li>
<li>有属性的结束标签。</li>
<li>非法结束标签。（在HTML中，一个非法的&lt;/br&gt;和&lt;/p&gt;会导致产生隐含在它之前的开始标签。）</li>
</ol>
</li>
<li>内部子集在XML中是允许的，在HTML中是无意义的（且被禁止）
<ol>
<li>在一些情况下，HTML中的内部子集最终部分内联呈现。</li>
</ol>
</li>
<li>当符号序列“]]&gt;”在内容中不标记一个CDATA段的结束时，在XHTML中是一个良构性错误，但在HTML中是有效的。</li>
<li>&lt;![CDATA[...]]&gt;，在XHTML中是一个CDATA片段，在HTML中是一个伪造的注释。</li>
<li>&lt;?foo &#8230;?&gt;，在XHTML中是一个处理指令，在HTML中是一个伪造的注释。</li>
<li>在HTML中，用于空元素语法的尾部斜线在非空(non-void)元素(见下)中会有解析错误，但在所有情况下都被忽略。</li>
<li>在HTML中，script和style元素作为CDATA解析。（注：这个CDATA的定义不同于XML中的。）在XML中，它们作为普通元素解析（这意味着注释被当着真正的注释，看起来像起始标签的就是起始标签）。</li>
<li>在HTML中，title和textarea元素作为RCDATA被解析。（RCDATA定义不同于SGML中的，也不是XML的RCDATA.）</li>
<li>在HTML中，如果脚本执行（scripting）是可用，noscript元素作为CDATA被解析。如果脚本执行是不可用的，它作为PCDATA被解析。在XHTML中，这个元素是没有作用的，当脚本执行不可用时，不能真正被用于阻止内容将要呈现。</li>
<li>在HTML中，iframe，noembed和noframes作为CDATA解析。在XHTML中作为普通元素被解析，因此不能阻止内容被使用。</li>
<li>在XHTML中属性值的空格(white space)符被<a href="http://www.w3.org/TR/REC-xml/#AVNormalize">标准化</a>为空白<sup>[3]</sup>。</li>
<li>在HTML中，可选标签的元素在特定情况下被隐藏。</li>
<li>在HTML中，在body中出现的带标签的title元素被转移到head中。在XHTML中，它停在指定它的地方。</li>
<li>在HTML中，脱离上下文(context)出现的特定元素的标签被忽略。包括：caption，col，colgroup，frame, frameset，head，option，optgroup，tbody，td，tfoot，th，thead，tr。</li>
<li>plaintext在HTML中有一个特别的解析请求。（无论如何，它都是被禁止的。）</li>
<li><i>这并不是全部的在HTML中发生的边界状态和错误条件。</i></li>
</ol>
<h3 id="syntax">语法（Syntax）</h3>
<ol>
<li>在HTML中，<a href="http://wiki.whatwg.org/wiki/FAQ#What_will_the_DOCTYPE_be.3F">doctype是必须的</a>。在XHTML中是可选的。</li>
<li>在XHTML中，标签名和属性名是大小写敏感的。在HTML中，它们是不敏感的。</li>
<li>在XHTML中，非空元素必须有一个开始标签和一个结束标签。在HTML中，某些元素允许省略一个或两个标签。
<ol>
<li>html (两个)</li>
<li>head (两个)</li>
<li>body (两个)</li>
<li>li (结束标签)</li>
<li>dt (结束标签)</li>
<li>dd (结束标签)</li>
<li>p (结束标签)</li>
<li>colgroup (两个)</li>
<li>thead (结束标签)</li>
<li>tbody (两个)</li>
<li>tfoot (结束标签)</li>
<li>tr (结束标签)</li>
<li>td (结束标签)</li>
<li>th (结束标签)</li>
</ol>
</li>
<li>在XHTML中，空元素可以用空元素语法(&lt;br /&gt;)或一个结束标签紧跟在开始标签的后面(&lt;br&gt;&#038;lt/br&gt;)。在HTML中，空元素(empty elements)语法（尾部斜线）允许出现在空元素（void elements）上<sup>[4]</sup>，但是禁止在非空元素上。无论如何，它没有任何意义可言，可以省略。对于空元素，结束标签是禁止的。
<ol>
<li>base, link, meta, hr, br, img, embed, param, area, col 和 input。 </li>
<li>注：在解析请求时，下面的元素被当作空元素对待，因为它们是过时和不标准的。尾部斜线是不允许的：basefont, bgsound, spacer, wbr（在任何方式下这些元素都是不允许的，所以它们没有太多不同）。</li>
</ol>
</li>
<li>HTML允许属性最简化（minimisation），比如省略这个值，而XHTML不允许。</li>
<li>HTML允许使用没有引号的属性值，而XHTML不允许。</li>
<li>XHTML允许使用CDATA片段，而HTML不允许。</li>
<li>XHTML允许处理指令，而HTML不允许。</li>
<li>在HTML中，所有实体引用（entity references）都是预定义的，不请求一个文档类型定义（DTD<sup>[5]</sup>）。但是由于XHTML5没有DTD，实体引用不能用在XHTML中（包括5中预定义的实体：&ampamp;, &amplt;, &ampgt;, &ampquot; 和 &ampapos;）。
<ol>
<li>可以用自己的验证解释器提供自己的DTD，但是浏览器不能使用这个验证解析器而将无法读取DTD。</li>
</ol>
</li>
<li>一套合法的unicode字符集在XML1.0中的限制远超在HTML中。</li>
<li>XHTML允许命名空间前缀，但是HTML禁止。</li>
</ol>
<h3 id="markup">标记（Markup）</h3>
<ol>
<li>在XHTML中，<a href="http://wiki.whatwg.org/wiki/FAQ#What_is_the_namespace_declaration.3F">命名空间声明</a>（xmlns属性）是必须的。在HTML中的html元素也允许xmlns属性出现，其值是&#8221;http://www.w3.org/1999/xhtml&#8221;。
<ol>
<li>&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&gt;</li>
<li>在HTML中，xmlns没有绝对作用。它基本上是一个护身符。它被允许仅仅是为了从XHTML移植过来更容易。当被HTML解析器解析时，这个属性最终处于无效的（null）命名空间中。</li>
<li>在XML（和<a href="http://www.w3.org/TR/xml-names/">XML命名空间</a>理解的解析器）中，xmlns属性是其命名空间声明机制的一部分，一个元素实际上在无效的命名空间中是不能有xmlns属性的。当DOM执行时，这个属性最终在&#8221;http://www.w3.org/2000/xmlns/&#8221;命名空间中。</li>
</ol>
</li>
<li>XHTML允许使用非XHTML元素和属性（在不同的命名空间），HTML不允许。</li>
<li>XHTML用xml:lang属性，HTML用lang属性代替。</li>
<li>XML ID引入xml:id，能用在XHTML中，但在HTML中没有作用。</li>
<li>在HTML中，noscript能被使用，在XHTML中，它是禁止的。</li>
<li>HTML用base元素，XHTML用xml:base代替。</li>
<li>在XHTML中，p元素也许包含结构化的内联级（inline level）元素，包括blockquote, dl, menu, ol, ul, pre 和 table。在HTML序列化中，由于向后兼容的限制，这是不可能的（虽然它或许可以通过DOM操作实现）。</li>
<li>在XHTML中，table元素或许包含子tr元素。在HTML序列化中，由于向后兼容的限制，这是不可能的（虽然它或许可以通过DOM操作实现）。</li>
</ol>
<h3 id="character-encoding">字符编码（Character Encoding）</h3>
<ol>
<li>在XHTML中，XML声明被用于指定的字符编码。在HTML中，禁止XML声明。</li>
<li>在HTML中，带有一个charset属性的meta可以用于代替。在XHTML中，如果有包含它，它是被禁止且忽略的。</li>
<li>XHMTL的默认编码是依据XML规则，UTF-8或UTF-16。在HTML中如果没有声明编码，它应该决定执行一个特别的启发式的或退回到一个默认的值。（规范中本章节还未完成）</li>
</ol>
<h3 id="scripts">脚本（Scripts）</h3>
<ol>
<li>document.write()和document.writeln()不能用在XHTML中，但能用在HTML中。</li>
<li>在XHTML中，通过innerHTML属性获取的字符串必须是一个良构的XML片段。</li>
<li>DOM APIs在XHTML中是大小写敏感的，但是一些在HTML中是不敏感的。（不适用于那些不在HTML命名空间的元素。）
<ol>
<li>Element.tagName, Node.nodeName, 和 Node.localName 返回是大写的值。</li>
<li>Document.createElement()是大小写不敏感的（规范写法是小写）。</li>
<li>Element.setAttributeNode() 将会把属性名改成小写。</li>
<li>Element.setAttribute() 是大小写不敏感的（规范写法是小写）。</li>
<li>Document.getElementsByTagName() 和 Element.getElementsByTagName()是大小写不敏感的。</li>
<li>Document.renameNode()。如果新的命名空间是HTML命名空间，在重命名执行之前新的合格的名字必须是小写。</li>
</ol>
</li>
<li>在HTML中，Document.createElement() 在HTML命名空间下创建一个元素。在XML（包括XHTML），这个被DOM2和DOM3定义的命名空间是空的。
<ol>
<li>在XHTML中，浏览器在这个领域缺乏通用性。在Firefox，这个命名空间依赖于MIME类型。在Opera它依赖于根元素，而在Safari，它一直是无效的。
</li>
</ol>
</li>
</ol>
<h3 id="stylesheets">样式表（Stylesheets）</h3>
<ol>
<li>用于CSS中的选择器(selectors)匹配在XHTML中是大小写敏感的，在HTML中大小写不敏感的。</li>
<li>在HTML中在画布上渲染背景，CSS请求body元素的特殊处理，但不适用于XHTML。</li>
</ol>
<p><strong>原文： <a href="http://wiki.whatwg.org/wiki/HtmlVsXhtml#Differences_Between_HTML_and_XHTML"> Differences Between HTML and XHTML</a></strong></p>
<ul class="refer">
<li>[1]&nbsp;MIME ： Multipurpose Internet Mail Extensions是Internet的传输标准，它提供Web浏览器一种检视多种档案格式的方式。</li>
<li>[2]&nbsp;WHATWG：<a href="http://www.whatwg.org/">Web Hypertext Application Technology Working Group</a>网页超文本技术工作小组。
<li>
<li>[3]&nbsp;<a href="http://www.w3.org/TR/REC-xml/#AVNormalize">XML1.0对属性值进行了标准化</a>。对于空格字符（#x20, #xD, #xA, #x9）加入了空白字符（#x20）变成了标准化的值。
<li>
<li>[4]&nbsp;<a href="http://wiki.whatwg.org/wiki/FAQ#Should_I_close_empty_elements_with_.2F.3E_or_.3E.3F">void elements是empty elements的新名字</a></li>
<li>[5]&nbsp;DTD(Document Type Definition)：文档类型定义</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://dancewithnet.com/2007/10/28/differences-between-html-and-xhtml/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

