因为xhtml是xml的一个应用,一些在基于sgml的html 4中完全合法的习惯在xhtml中必须改变。
文档必须是编排良好的
编排良好性well-formedness是[xml]引入的一个新概念。从本质上说,这意味着元素必须有结束标签,或者必须以特殊方式书写(在下面说明)。
元素必须嵌套,尽管sgml规定层叠非法,但现有的浏览器普遍允许层叠。
正确:嵌套元素。
<p>here is an emphasized <em>paragraph</em>.</p>
不正确:层叠元素。
<p>here is an emphasized <em>paragraph.</p></em>
元素和属性名必须小写
对所有html元素和属性名,xhtml 文档必须使用小写。 因为xml是大小写敏感的,所以这个差别是必须的。如 <li> 和 <li> 是不同的标签。
对非空元素,必须使用结束标签
在基于 sgml的 html 4 中,一些隐含结束意义的元素允许忽略结束标签。而在基于xml的xhtml中,这种忽略不被允许。除了在dtd中被声明为空的元素,所有元素必须有结束标签。
正确:结束了的元素。
<p>here is a paragraph.</p><p>here is another paragraph.</p>
不正确:未结束元素。
<p>here is a paragraph.<p>here is another paragraph.
属性值必须在引号中
所有的属性必须用引号,即使是数字。
正确:在引号中的属性值
<table rows="3">
不正确:不在引号中的属性值。
<table rows=3>
属性最小化
xml 不支持属性最小化. 属性值对必须写全。象compact,checked这样的属性名不能不指定属性值而在元素中出现。
正确:没有最小化的属性
<dl compact="compact">
不正确:最小化属性
<dl compact>
空元素
空元素要么必须有结束标签,要么起始标签以/>结束. 例如,<br/>或<hr></hr>. 请参看html兼容性指导 html compatibility guidelines 中的信息,以保证向后兼容html 4用户代理程序
正确:结束的空元素
<br/><hr/>
错误:未结束的空标签
<br><hr>
属性值中的空白字符处理
对属性值,用户代理程序将删去引导和后序空白符,将一个或多个空白符(包括换行)转换成单个字符间空间(在西方书写体中是一个ascii空格) see section 3.3.3 of [xml]。
script and style 元素
在xhtml中,script和style元素声明为#pcdata内容形式,因此,< 和 & 被看作是标识的开始,<和& 这样的实体被xml处理程序看作为实体引用而分别被认为是< 和 & . 将script和style元素的内容包裹在cdata记号部分中避免了这些实体的扩张。
<script>
<![cdata[
... unescaped script content ...
]]>
</script>
cdata 部分被 xml 处理程序识别,是文档对象模型中一个结点。请参看1.3节section 1.3的dom level 1推荐标准[dom]。
替代的方式是使用外部script和style文档。
sgml 禁止
sgml 给作者的dtd可以指定在一个元素内部禁止出现的元素。这样的禁止在xml中是不可能的。
例如,严格的 html 4 dtd 禁止任何深度的’a’元素对另一’a’元素的嵌套。在xml中无法写出这样的禁止。尽管这些禁止不能在dtd中定义,一些元素不应该被嵌套。在标准化的附录b appendix b中是这些元素的汇总。
具有 'id' 和 'name' 属性的元素
html 4 定义了name属性的元素有 a,applet,form,frame,iframe,img,and map. html 4还引入了 id 属性. 这两个属性都是被设计作为片段标识符。
在xml中,片段标识符是id类型,每个元素只能有一个id类型的属性。因此,在xhtml1.0中,id属性被定义为id类型。为保证xhtml1.0文档是结构良好的xml文档,在定义一个片段标识符时,xhtml文档必须使用id属性,即使是对那些以前用name属性的元素。请参看 html compatibility guidelines 的信息,确保xhtml文档以text/html媒体类型使用时,这些”锚”能向后兼容。
注意,在xhtml 1.0中,name 属性不被正式支持,在以后的xhtml版本中将被删除。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器