<?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>大风口 &#187; xhtml</title>
	<atom:link href="http://www.masterboke.com/tag/xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.masterboke.com</link>
	<description>I want to change the world!</description>
	<lastBuildDate>Fri, 16 Sep 2011 09:41:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>.xhtml扩展名</title>
		<link>http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/</link>
		<comments>http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 15:56:17 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=291</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/" title=".xhtml扩展名"></a>今天在研究手机开发时的javascript应用时，不经意间发现了个小问题，现来看一下这两个文件： a.xhtml &#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&#62; &#60;html xmlns="http://www.w3.org/1999/xhtml"&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /&#62; &#60;title&#62;1&#60;/title&#62; &#60;script type="text/javascript"&#62; window.onload = function() { var pp = document.documentElement.childNodes; for (p in pp) { alert(pp[p]); } } &#60;/script&#62; &#60;/head&#62; &#60;body&#62; &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/" title=".xhtml扩展名"></a><p><span class="pleft">今天在研究手机开发时的javascript应用时，不经意间发现了个小问题，现来看一下这两个文件：</span></p>
<p><span class="pleft">a.xhtml</span></p>
<pre class="brush:xhtml">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /&gt;
&lt;title&gt;1&lt;/title&gt;
&lt;script type="text/javascript"&gt;
window.onload = function()
{
var pp = document.documentElement.childNodes;
for (p in pp)
{
alert(pp[p]);
}
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><span class="pleft">b.html</span></p>
<pre class="brush:xhtml">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /&gt;
&lt;title&gt;1&lt;/title&gt;
&lt;script type="text/javascript"&gt;
window.onload = function()
{
var pp = document.documentElement.childNodes;
for (p in pp)
{
alert(pp[p]);
}
}
&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><span class="pleft">发现两个文件的不同之处了吗？其实上面两个文件是完全一样的，除了扩展名。</span></p>
<p><span class="pleft">由于要做手机开发，有人建议说用.xhtml这个扩展名更好一些，于是就用了。本想用js得到body这个节点，结果试了几次pp[0]都不对。</span></p>
<p><span class="pleft">我用的是XHTML-MP 1.2的DOCTYPE，难道DOCTYPE不对？好，换成标准的xhtml的DOCTYPE，就是a.xhtml这样的，还是不对啊！</span></p>
<p><span class="pleft">难道js代码写的有问题？（这里有段小插曲，在下篇文章详述）百度一下，再翻出以前写的看看，没问题啊！还有哪儿不对呢？</span></p>
<p><span class="pleft">按网上和我以前的经验来说，pp[0]是&lt;head&gt;，pp[1]是&lt;body&gt;才正对呀！不管了，先把pp都alert出来看看是啥东西再说。这一alert发现问题了，多出三个[object Text]，分别位于&lt;head&gt;前面，&lt;head&gt;和&lt;body&gt;之间，&lt;body&gt;之后。这种情况，甭问肯定是换行符所致，删掉，果然没问题了。</span></p>
<p><span class="pleft">记得以前没出现这种情况，那可能就是扩展名的问题了，另存为b.html，再试，没问题了，这才恍然大悟，怪不得年前看过一个手机页面，一个换行符也没有。</span></p>
<p><span class="pleft">来个刨根问底，查查这个.xhtml到底咋回事，百度了半天，没找到，google了半天，好像（为什么加个好像呢?答案看我2月12号的饭否）也没找到。</span></p>
<p><span class="pleft">哪位有缘人路过提点提点，期待ing！！！</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/02/12/xhtml%e6%89%a9%e5%b1%95%e5%90%8d/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>HTML 4与XHTML 1.0区别</title>
		<link>http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/</link>
		<comments>http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 06:13:36 +0000</pubDate>
		<dc:creator>boke</dc:creator>
				<category><![CDATA[markup language]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.masterboke.cn/?p=99</guid>
		<description><![CDATA[<a href="http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/" title="HTML 4与XHTML 1.0区别"></a>翻译w3c的http://www.w3.org/TR/xhtml1/ 第四部分，具体的不同还要参考DOM（不是很喜欢DOM的个别地方，用JS操作一个元素时，原本简单的东西往往得很多句才能搞定，再次抱怨一下，呵呵）和XML。 编写手机页面时所用的xhtml mp和xhtml basic 依照xhtml标准，虽然浏览器一般都较宽容，但不推荐旧的写法。 XHTML文档必须具有良好完整的排版(well-formed) 编排良好性(Well-formedness)是XML引入的一个新概念.从本质上说,元素必须有结束标签,或者必须以特殊方式书写,而且元素必须嵌套. 尽管SGML规定重叠(overlapping)是非法的,但现有的浏览器普遍允许重叠. 正确:嵌套元素(nested elements) &#60;p&#62;梦之都 &#60;em&#62;XHTML教程&#60;/em&#62;.&#60;/p&#62; 不正确:层叠元素(overlapping elements) &#60;p&#62;梦之都 &#60;em&#62;XHTML教程&#60;/p&#62;.&#60;/em&#62; 元素和属性名必须小写 对于所有HTML元素和属性名, XHTML文档必须使用小写. 因为XML是大小写敏感的.如 &#60;li&#62; 和 &#60;LI&#62; 是不同的标签. 对非空元素,必须使用结束标签 在基于SGML的HTML4中的一些隐含结束意义的元素允许忽略结束标签.XML不允许忽略结束标签.除了在DTD中被声明为空的元素,所有元素必须有结束标签. 正确:结束的元素(terminated elements) &#60;p&#62;梦之都的XHTML教程.&#60;/p&#62;&#60;p&#62;梦之都的CSS教程.&#60;/p&#62; 不正确:未结束的元素(unterminated elements) &#60;p&#62;梦之都的XHTML教程.&#60;p&#62;梦之都的CSS教程. 属性值必须在引号中 所有的属性值必须在引号中,即使是以数字形式的属性值 正确:在引号中的属性值(quoted attribute values) &#60;table rows="3"&#62; &#8230;<p class="read-more"><a href="http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/">继续阅读 &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/" title="HTML 4与XHTML 1.0区别"></a><p>翻译w3c的http://www.w3.org/TR/xhtml1/ 第四部分，具体的不同还要参考DOM（不是很喜欢DOM的个别地方，用JS操作一个元素时，原本简单的东西往往得很多句才能搞定，再次抱怨一下，呵呵）和XML。</p>
<p>编写手机页面时所用的xhtml mp和xhtml basic 依照xhtml标准，虽然浏览器一般都较宽容，但不推荐旧的写法。</p>
<p><strong>XHTML文档必须具有良好完整的排版(well-formed)</strong></p>
<p>编排良好性(Well-formedness)是XML引入的一个新概念.从本质上说,元素必须有结束标签,或者必须以特殊方式书写,而且元素必须嵌套.</p>
<p>尽管SGML规定重叠(overlapping)是非法的,但现有的浏览器普遍允许重叠.</p>
<p>正确:嵌套元素(nested elements)</p>
<pre class="html"><code class="tag">&lt;p&gt;</code>梦之都 <code class="tag">&lt;em&gt;</code>XHTML教程<code class="tag">&lt;/em&gt;</code>.<code class="tag">&lt;/p&gt;</code></pre>
<p>不正确:层叠元素(overlapping elements)</p>
<pre>&lt;p&gt;梦之都 &lt;em&gt;XHTML教程&lt;/p&gt;.&lt;/em&gt;</pre>
<p><strong>元素和属性名必须小写</strong></p>
<p>对于所有HTML元素和属性名, XHTML文档必须使用小写. 因为XML是大小写敏感的.如 <code>&lt;li&gt;</code> 和 <code>&lt;LI&gt;</code> 是不同的标签.</p>
<p><strong>对非空元素,必须使用结束标签</strong></p>
<p>在基于SGML的HTML4中的一些隐含结束意义的元素允许忽略结束标签.XML不允许忽略结束标签.除了在DTD中被声明为空的元素,所有元素必须有结束标签.</p>
<p>正确:结束的元素(terminated elements)</p>
<pre class="html"><code class="tag">&lt;p&gt;</code>梦之都的XHTML教程.<code class="tag">&lt;/p&gt;</code><code class="tag">&lt;p&gt;</code>梦之都的CSS教程.<code class="tag">&lt;/p&gt;</code></pre>
<p>不正确:未结束的元素(unterminated elements)</p>
<pre>&lt;p&gt;梦之都的XHTML教程.&lt;p&gt;梦之都的CSS教程.</pre>
<p><strong>属性值必须在引号中</strong></p>
<p>所有的属性值必须在引号中,即使是以数字形式的属性值</p>
<p>正确:在引号中的属性值(quoted attribute values)</p>
<pre class="html"><code class="tag">&lt;table</code> <code class="attr">rows</code><code class="tag">=</code><code class="attrvalue">"3"</code><code class="tag">&gt;</code></pre>
<p>不正确:不在引号中的属性值(unquoted attribute values)</p>
<pre>&lt;table rows=3&gt;</pre>
<p><strong>属性最小化</strong></p>
<p>XML不支持属性最小化.属性-属性值必须完整成对的写出.像disabled,checked这样的属性名不能在不指定属性值的情况下出现.</p>
<p>正确:非最小化属性(unminimized attributes)</p>
<pre class="html"><code class="tag">&lt;input</code> <code class="attr">checked</code><code class="tag">=</code><code class="attrvalue">"checked"</code><code class="tag">&gt;</code></pre>
<p>不正确:最小化属性(minimized attributes)</p>
<pre>&lt;input checked&gt;</pre>
<p><strong>空元素</strong></p>
<p>空元素必须有结束标签,或者起始标签必须以<strong>/&gt;</strong>结束.例如,<strong>&lt;br/&gt;</strong>或<strong>&lt;hr&gt;&lt;/hr&gt;</strong>.参看HTML兼容性指导HTML Compatibility Guidelines中的信息,以保证向后兼容HTML 4用户代理程序.</p>
<p>正确:结束的空元素(terminated empty elements)</p>
<pre class="html"><code class="tag">&lt;br/&gt;</code><code class="tag">&lt;hr/&gt;</code></pre>
<p>错误:未结束的空标签(unterminated empty elements)</p>
<pre>&lt;br&gt;&lt;hr&gt;</pre>
<p><strong>属性值中的空白字符处理</strong></p>
<ul>
<li>删去引导和后序空白符</li>
<li>将一个或多个空白符(包括换行)转换成单个字符间空间</li>
</ul>
<p><strong>Script and Style 元素</strong></p>
<p>XHTML中,<code>script</code>和<code>style</code>元素被声明为#PCDATA内容形式,因此,&lt;和&amp;被看作是标识的开始,&amp;lt和&amp;amp等HTML实体将被XML处理器看作为实体引用而分别被认为是&lt;和&amp;.将<code>script</code>和<code>style</code>元素的内容隐蔽在CDATA标记中避免了这些实体的扩张.</p>
<pre class="html"><code class="tag">&lt;script&gt;</code>
&lt;![CDATA[
... unescaped script content ...
]]&gt;
<code class="tag">&lt;/script&gt;</code></pre>
<p>CDATA部分被XML处理器识别,表现为文档对象模型中的一个结点.替代的方式是使用外部script和style文档.</p>
<p><strong>SGML排斥</strong></p>
<p>SGML给作者的DTD可以指定在一个元素内部禁止出现的元素.这样的禁止在XML中是不可能的.</p>
<p>例如,严格的HTML 4 DTD”禁止”任何深度的&#8217;a'元素对另一&#8217;a'元素的嵌套.在XML中无法写出这些的”禁止”.虽然这些禁止不能被定义在DTD中,但是一些元素不应该被嵌套.对不能被嵌套的元素Element Prohibitions的总结.</p>
<p><strong>具有&#8217;id&#8217;和&#8217;name&#8217;属性的元素</strong></p>
<p>HTML4定义了<code>name</code>属性的元素有a,applet,form,frame,iframe,img and map.HTML4还引入了id属性.这两个属性都是被设计用为片段标识符.</p>
<p>在 XML中,片段标识符是ID,每个元素只能有一个ID类型的属性.因此,在XHTML1.0中,id属性被定义为ID类型.为保证XHTML1.0文档是 结构良好(well-structured)的XML文档,在定义一个片段标识符时,XHTML文档必须使用id属性,即使是对那些以前用name属性的 元素.参看 HTML Compatibility Guidelines,确保XHTML文档以text/html媒体类型使用时,这些”锚(anchors)”能向后兼容.</p>
<p>注意,在XHTML 1.0中,<code>name</code>属性是不赞成使用的,在以后的XHTML版本中将被删除。</p>
<p><strong>有预定义值的属性</strong></p>
<p>在HTML 4和XHTML都有一些属性，它们有预先确定且有限的值（例如， type属性的input元素） 。在SGML和XML中 ，这些被称为枚举属性。在HTML 4中 ，这些值是不区分大小写的，所以TEXT和text是一样的。在XML中，这些值是区分大小写的，而在XHTML 1所有这些值都应该是小写的。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.masterboke.com/2009/01/19/html-4%e4%b8%8exhtml-10%e5%8c%ba%e5%88%ab/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

