W3C

XHTML™ 1.0 可扩展的超文本标记语言(第二版)

一种基于XML 1.0并重新编写HTML 4的语言

W3C 推荐 2000年1月26日, 2002年8月1日修订

此版本:
http://www.w3.org/TR/2002/REC-xhtml1-20020801
最终版本:
http://www.w3.org/TR/xhtml1/
前一版本:
http://www.w3.org/TR/2000/REC-xhtml1-20000126
含有区别标志的版本:
http://www.w3.org/TR/xhtml1/xhtml1-diff.html
作者:
参考 致谢

请对本文勘误,其中可能包含官方的修正。 也请参考对本文档的 翻译

本文档也有非标准格式:Multi-part XHTML文件 PostScript 版本PDF 版本ZIP 存档Gzip'd TAR 存档


概述

在第二版本的定义中,XHTML 1.0 基于XML 1.0 应用并重构了HTML 4,而且相应的重塑了三个DTD文档。W3C的HTML 4 中已经定义了XHTML的元素和属性的语义,在此支持下,XHTML未来将得到更多的扩展。所以,尽量兼容HTML 4 用户代理来提供XHTML规范方面的帮助。

此文档的状态

此节描述发布时的文档状态,其他文档也可能代替本文档。本文档系列的最终状态由W3C支持维护。

本文档是截至2002年8月1日以来纠正了勘误变化的XHTML 第2版标准文档。本版本文档和前一版本的区别已被标记,请参考: 含有区别标志的版本

第2版的XHTML 1.0 不一定是最新的(第1版在2000年1月26日出版),各种不同版本的区别和差异已经被HTML工作小组收集和整理,本文档综合了各种勘误,不会再出现更新。

本标准中一些显著的错误问题列在:http://www.w3.org/2002/08/REC-xhtml1-20020801-errata

勘误本文档错误请邮: www-html-editor@w3.org (归档). HTML 4 特性的公众讨论请加入邮件列表: www-html@w3.org (归档)。

本文档已经成为 W3C HTML Activity 的一部分 . HTML 工作组 (仅会员) 的目标谈论在: HTML Working Group charter.

发布之时,工作组相信不会出现版权揭发,关于本规范现行的版权揭发请参考工作组的 版权揭发页面

了解W3C标准和其他技术文档请参考:http://www.w3.org/TR

快速目录

展开目录

1. 什么是XHTML ?

This section is informative.

HTML 4 经过重写、规范和扩展,形成了具有现行和未来文档类型和模块的XHTML家族。XHTML家族文档的类型基于XML,并且它被开发的目的也最终是与基于XML的用户代理协同工作。谈论关于XHTML家族的详情和发展请参考[XHTMLMOD]。

XHTML 1.0(本规范)是XHTML家族中的第一个文档类型。它将3个HTML 4文档类型重写为基于XML 1.0 [XML]的应用 。它被确认是一种与XML和兼容HTML 4指南guidelines内容一致的语言。开发者实现到XHTML 1.0的移植,可以得到下受益:

XHTML将是互联网下一步的发展。XML的不断发展将使XHTML不断壮大,使迁移到XHTML平台的客户得到更多的受益,但值得注意的是:XHTML在向后兼容性方面仍然存在问题。

1.1. 什么是HTML 4 ?

HTML 4 [HTML4]是与互联网标准 ISO 8879一致的SGML (标准通用标记语言) 的应用。

SGML是描述标记语言的语言,它特别被用在电子文档交换、文档管理和文档发布中。HTML是SGML语言定义的一个例子。

SGML自是19世纪80年代中期发展起来,至今它非常稳定。语言的稳定源自于它丰富的特性和灵活性。但这种灵活性的代价是复杂性,约束了它在多样环境中的适应力,包括万纬网。

HTML最初的构想是面向科学和技术文档的交换,对非文档专家非常适合,HTML通过指定一套结构和含有语义的标签来创建相关联的简单文档,这种办法解决了SGML复杂性的问题。除了指定文档结构,HTML随后又加入了超文本、多媒体等。

相当短的时间内,HTML广泛的流行起来并迅速成长而不局限于它的初衷。HTML发展一开始,很多支持HTML元素的(作为标准)就被创建,使HTML适应纵向、高专业性的市场。但HTML过多新元素导致文档在不同平台上不能协同的问题。

1.2. 什么是XML ?

XML™是可扩展标记语言 [XML]的缩写。

XML设计之初是为了除去SGML复杂性,恢复SGML的灵活性。尽管受到SGML的约束,XML还是保持了SGML更多更丰富的特性,并保留了SGML普通的特性。

保留了SGML有利特性的同时,XML移除了SGML更多的综合性,SGML的综合性使适合软件的编写和设计变得更加困难和昂贵。

1.3. 为什么需要XHTML ?

移植到XHTML 1.0 除了上述受益外,还有:

2.定义

This section is normative.

2.1. 术语

本规范中使用下列术语,这些术语定义在[RFC2119],他们基于类似ISO/IEC 9945-1:1990 [POSIX.1]中的定义。

也许
With respect to implementations, the word "may" is to be interpreted as an optional feature that is not required in this specification but can be provided. With respect to Document Conformance, the word "may" means that the optional feature must not be used. The term "optional" has the same definition as "may".
 
必须
In this specification, the word "must" is to be interpreted as a mandatory requirement on the implementation or on Strictly Conforming XHTML Documents, depending upon the context. The term "shall" has the same definition as "must".
 
可选
See "May".
保留的
A value or behavior is unspecified, but it is not allowed to be used by Conforming Documents nor to be supported by Conforming User Agents.
See "Must".
应该
With respect to implementations, the word "should" is to be interpreted as an implementation recommendation, but not a requirement. With respect to documents, the word "should" is to be interpreted as recommended programming practice for documents and a requirement for Strictly Conforming XHTML Documents.
支持
Certain facilities in this specification are optional. If a facility is supported, it behaves as specified by this specification.
未指定
When a value or behavior is unspecified, the specification defines no portability requirements for a facility on an implementation even when faced with a document that uses the facility. A document that requires specific behavior in such an instance, rather than tolerating any behavior when using that facility, is not a Strictly Conforming XHTML Document.

2.2. 词汇

Attribute
属性是DTD中生命元素的参数,DTD中也定义了属性的类型、范围、默认值。
DTD
DTD,文档类型定义,是XML标记声明的集合,它定义了文档中可用的合法的结构、元素属性,他们的集合遵守DTD。
文档
文档是数据流,各种数据流结合后,他们的内容被相关的DTD定义的元素结构化和组织。请参考文档一致性
元素
一个元素就是DTD定义的文档结构单位。DTD定义了元素内容模型,并且附加的语义被定义在元素的描述中。
设备
设备就是元素、属性和他们的相关的语义。
执行
请参考用户代理。
分析
分析是文档被扫描的行为,并且包含信息的文档被结构化通过元素上下文过滤。
呈现
呈现是文档信息被表现的行为。这种表现可以表达为多种形式(例如:听觉的,视觉的,打印)。
用户代理
用户代理是处理与本规范一致XHTML文档的系统。请参考用户代理一致性
确认
确认是文档通过相应的DTD进行验证的处理,它保证文档的结构、元素属性的使用与DTD中定义的保持一致。
格式完好
一份文档格式完好表示它的结构遵守XML 1.0规范[XML] Section 2.1规则。

3. XHTML 1.0 标准化定义

This section is normative.

3.1. 文档一致性

本版本的HTML提供严格一致的XHTML 1.0文档定义,此定义通过 XML 和 XHTML 1.0的命名空间约束元素和属性,在XHTML中使用其他命名空间情参考 3.1.2,例如:通过XHTML文档在资源描述框架中

3.1.1. 严格一致的文档

一份严格一致XHTML文档就是一份XML文档。本规范中,它强制定义了所需的元素和属性。这样的文档必须符合下面的标准:

  1. 它必须具有强制约束的3个DTDs中的一个,请参考附录BDTDs

  2. 文档的根元素必须是 html

  3. 文档根元素必须为XHTML命名空间[XMLNS]包含一个xmlns声明。XHTML的命名空间定义必须是http://www.w3.org/1999/xhtml。下面是根元素命名例子:

  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    
  5. 文档根元素之前必须有DOCTYPE声明。DOCTYPE声明内的公共标识符必须指向各自的3个官方公共标识符DTDs中的1个。系统标识符会变为反映本地系统的规则。

  6. <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "/DTD/xhtml1-strict.dtd">
    
    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "/DTD/xhtml1-transitional.dtd">
    
    <!DOCTYPE html 
         PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
         "/DTD/xhtml1-frameset.dtd">
    
  7. 在DTD中,DTD子集不能引用其他任何的参数实体。

所有XML文档不一定需要这种XML声明,但强烈建议所有XHTML文档应用这种声明。这种声明使用的情况还包括:当文档需要引用其他字符编码(非 默认编码如: UTF-8 或 UTF-16)时,和更高级别协议无法决定使用是否使用编码时。下面是XHTML文档的一个例子,XML声明被包含其中:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Virtual Library</title>
  </head>
  <body>
    <p>Moved to <a href="http://example.org/">example.org</a>.</p>
  </body>
</html>

3.1.2.在XHTML中使用其他命名空间

按照[XMLNS],XHTML的命名空间可以其他的XML命名空间,尽管上节没有定义如此不严格一致的文档,但W3C解决了多重命名空间文档一致性的问题。详例请参考[XHTML+MathML]。

下面例子展示了XHTML 1.0能与 MathML规范协同的方法:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>A Math Example</title>
  </head>
  <body>
    <p>The following is MathML markup:</p>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply> <log/>
        <logbase>
          <cn> 3 </cn>
        </logbase>
        <ci> x </ci>
      </apply>
    </math>
  </body>
</html>

下面例子展示XHTML 1.0标记和其他XML命名空间协同的方法:

<?xml version="1.0" encoding="UTF-8"?>
<!-- initially, the default namespace is "books" -->
<book xmlns='urn:loc.gov:books'
    xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en">
  <title>Cheaper by the Dozen</title>
  <isbn:number>1568491379</isbn:number>
  <notes>
    <!-- make HTML the default namespace for a hypertext commentary -->
    <p xmlns='http://www.w3.org/1999/xhtml'>
        This is also available <a href="http://www.w3.org/">online</a>.
    </p>
  </notes>
</book>

3.2. 用户代理一致性

一致性的用户代理遵守下面标准:

  1. 为了与XML规范 [XML]保持一致, 用户代理必须分析和确保XHTML是格式完好的。如果用户代理要求成为验证中的用户代理,它必须也依照[XML]通过文档的DTDs参考来验证文档。
  2. 当用户代理需要支持本规范或官方规范定义的设备时,它必须依据设备的定义协同。
  3. 当一个用户代理将一份XHTML文档当作普通XML文档处理时,它将识别类型为ID的属性(也就是大多数XHTML元素中的id属性)作为片断标识符。
  4. 如果用户代理遇到它不识别的元素,它必须处理元素的内容。
  5. 如果用户代理遇到它不认识的属性,它必须忽略整个属性参考(也就是属性和它的属性值)。
  6. 如果用户代理遇到它不认识的属性值,它必须使用默认的属性值。
  7. 如果用户代理遇到它处理了但没有声明(如果声明处于外部子集中,用户代理则不能读取)的实体(本规范和XML规范没有定义的实体), 实体参考会被处理为字符(开始用“#”符号,结尾用“;”符号)来代替实体参考。
  8. 当处理内容时,用户代理遇到认识当无法表现的字符或字符实体时,它会现用相同意思的字符代替,或者显示文档告诉用户它无法识别和代替。
  9. 空格遵守以下规则处理。下面字符被定义在[XML]空格字符中。

  10. XML处理器将不同系统行结束代码统一成简单的换行符 LINE FEED,此将会被应用程序拒绝。

    用户代理通过CSS的定义来处理空格字符 [CSS2]。注意CSS2规范没有解决有关non-Latin字符设置中的空格问题。这将会在CSS以后版本中得到解决,到那是,本规范也将更新。

注意:为了创建一个规范的XHTML文档,上面的规则和[XMLC14N]中的规则必须应用于文档中。

4. XHTML 1.0 与 HTML 4 的区别

This section is informative.

因为XHTML是XML的应用,所以基于SGML的HTML 4 [HTML4]必须被改变。

4.1. 文档必须是格式完好的

[XML]介绍了格式完好这个新的概念。本质上,这就意味着所有的元素必须有他们结束标记或书写为特殊形式(下节中描述),并且所有的元素必须正确的镶套。

尽管在SGML中,元素重叠是非法的,但现行的浏览器却广泛的容忍行为。

正确: 元素镶套

<p>here is an emphasized <em>paragraph</em>.</p>

不正确: 元素重叠

<p>here is an emphasized <em>paragraph.</p></em>

4.2. 元素和属性必须小写

HTML的元素和属性名称在XHTML文档中必须小写。这区别是因为XML大小写敏感。例如<li> 和 <LI>是不同的标记。

4.3. 对于非空内容的元素,必须有结束标记

基于SGML的HTML 4允许某些元素忽略结束标记,即:下一个元素的开始意味着上一个元素已结束。XML不允许忽略结束标记。除了 在DTD中声明为 EMPTY的元素以外,所有元素必须有结束标记。DTD中声明为 EMPTY的元素也有他们的结束标记或者用空元素的缩写(参考空元素)。

正确:元素被终止

<p>here is a paragraph.</p><p>here is another paragraph.</p>

不正确:元素未被终止

<p>here is a paragraph.<p>here is another paragraph.

4.4. 属性值必须被引号引用

所有的属性值不管是否数字,他们必须被引号引用。

正确: 属性值被引用

<td rowspan="3">

不正确: 属性值未被引用

<td rowspan=3>

4.5. 属性最小化

XML不支持属性最小化。成对属性值必须全写。诸如 compactchecked的属性名称如果不写出指定属性值,他们在元素中不会发生。

正确: 非最小化属性

<dl compact="compact">

不正确: 最小化的属性

<dl compact>

4.6. 空元素

空元素必须有他们自身的结束标记或者必须以 />结尾标记的开始。例如,<br/> 或者 <hr></hr>。请参考HTML兼容性指南来确保其兼容HTML 4用户代理的向后兼容性。

正确: 终止的空元素

<br/><hr/>

不正确: 未终止的空元素

<br><hr>

4.7. 属性中空格的处理

当用户代理处理属性时,他们遵守 [XML]的Section 3.3.3

4.8. Script和Style元素

在XHTML中,script 和style元素的具有#PCDATA的属性内容。作为结果,<&会被做为标记的开始,实体 &lt;&amp;会被XML处理器相应的理解为<&的实体参数。所以请用CDATA标记来包裹脚本内容和样式元素,从而避免出现脚本和样式表中的实体。

<script type="text/javascript">
<![CDATA[
... unescaped script content ...
]]>
</script>

XML处理器识别CDATA部分为文档对象模型的节点,请参考:DOM 级别1 规范[DOM] 1.3节 Section 1.3

这种选择用来引用外置的脚本和样式表文档。

4.9. SGML排它性

SGML给予DTD一种权利,使文档中不能存在他没有宣告的元素。但这种禁止(排它性)在XML中不可能存在。

例如:HTML 4 严格的DTD禁止在 'a' 元素中镶套其他的'a' 元素。这样的禁止规范在XML中没有,即使这种禁止规范没有在DTD中定义,这种镶套行为也不应该发生。此类元素不能镶套其他元素的描述请参考元素禁止规范

4.10. 具有“id” 和“name”属性的元素

HTML 4为 aappletformframeiframeimgmap元素定义了name属性。HTML 4 同样介绍了id属性,两种属性都被设计用来做为片断标识符。

在XML中,片段标识符是ID类型的一种,并且,一个元素只能具有一个 ID类型的属性。因此,id 属性被定义为ID的类型。为了确保XHTML 1.0是格式完好的XML文档,当在上列元素中定义片断标识符时,XHTML 1.0文档必须使用 id属性。当伺服XHTML文档text/html时,为请参考HTML兼容性指南来确保代码的向后兼容性。

注意:这些元素的name属性被正式的弃用,并且将在XHTML随后的版本中去除。

4.11. 缺省属性设置

在HTML 4 和XHTML 中有一些属性具有预定的和有限的属性值(例如:input元素的type 属性)。在SGML和XML中被称之为列举属性。在HTML 4 中,这些值大小写不敏感,所以TEXTtext是同等的。在XML中,大小写敏感,在XHTML中,所有这些属性值被必须定义为小写。

4.12. 十六进制数值实体参考

SGML和XML中,允许使用十六进制数值参考,在SGML中这些参数形式可能为:&#Xnn; 或者 &#xnn;。在XML中必须用小写来表示实体参数,例如(&#xnn;)

5. 兼容性讨论

This section is normative.

尽管不需要保持XHTML 1.0对现有浏览器的兼容,但从实践来讲,这也很容易实现。创建兼容性文档的指南情请参考附录 C

5.1. 网络媒体类型

因为XHTML文档兼容大多数HTML浏览器,所以他们遵循附录 C "HTML 兼容性指南"的原则,被网络媒体类型"text/html" [RFC2854]标注,与这个规范一致那些文档和其他文档也可能被标注[RFC3236]定义的网罗媒体类型 "application/xhtml+xml" 。更多有关在XHTML中使用媒体类型的资料,情参考 [XHTMLMIME]。

A. 文档类型定义(DTDs)

This appendix is normative.

本节DTDs和实体设置定义来自本规范的一部分。本规范中全套附带XML声明的DTD文件和SGML开放目录被囊括在zip文件gzip'd tar 文件中。用户通过下载这些存档文件到本地来进行工作而不是引用下面的DTDs参考。

A.1.文档类型定义

这些DTDs类似HTML 4的DTDs。当验证文档内容时,W3C推荐您使用这些定义了SYSTEM标识符DTDs权威的版本。如果你本地工作时需要这些 DTDs,你应该下载本版本存档文件中的一个。为了完整性,官方版本的DTDs罗列如下:

A.1.1. XHTML-1.0-严格型

DTD/xhtml1-strict.dtd 文件是本规范的标准化部分,为了完整性,带注解内容文件情参考 独立章节

A.1.2. XHTML-1.0-过渡型

DTD/xhtml1-transitional.dtd文件是本规范的标准化部分,为了完整性,带注解内容文件情参考独立章节

A.1.3. XHTML-1.0-框架型

DTD/xhtml1-frameset.dtd文件是本规范的标准化部分,为了完整性,带注解内容文件情参考独立章节

A.2. 实体设置

XHTML 实体设置与 HTML 4相同,但已经被修改,使之能被XML 1.0 实体声明验证。注意,欧洲货币符号的实体 (&euro;&#8364;&#x20AC;) 也被定义为特殊字符的一部分。

A.2.1. Latin-1 字符

DTD/xhtml-lat1.ent 文件是本规范的标准化部分,为了完整性,带注解内容文件情参考 独立章节

A.2.2. 特殊字符

DTD/xhtml-special.ent文件是本规范的标准化部分,为了完整性,带注解内容文件情参考独立章节

A.2.3. 符号

DTD/xhtml-symbol.ent文件是本规范的标准化部分,为了完整性,带注解内容文件情参考独立章节

B. 元素禁止规范

This appendix is normative.

下列元素能否镶套其他元素遵循元素禁止规范 (请参考: SGML Exclusions)。本规范应用于所有深层镶套的元素,也就是它包含所有的子孙元素。

a
不能包含其他 a元素。
pre
不能包含其他img, object, big, small, sub, 或者 sup元素。
button
不能包含其他input, select, textarea, label, button, form, fieldset, iframe 或者 isindex元素。
label
不能包含其他label元素。
form
不能包含其他form元素。

C. HTML兼容性指南

This appendix is informative.

此附录内容总结编写者如何设计出能在现行HTML用户代理中显示的XHTML文档。注意,本规范不定义HTML一致的用户代理如何处理HTML文档,也不定义text/html网络媒体类型的定义。更多的定义,请分别参考[HTML4]和 [RFC2854] 。

C.1. 处理指令和XML声明

注意:处理指令在某些用户代理中被呈现,同样,某些用户代理认为XML声明是意味着文档不认知XML,因此文档的表现不是你所期望的。为了更好的兼 容这些老类型的浏览器,你也许可以避免使用处理指令和XML声明。记住,尽管文档中没有进行XML声明,但文档仍然可以使用默认的UTF-8 或者 UTF-16字符编码。

C.2. 空元素

在空元素尾部 /> 键入一个空格,例如:<br /><hr /><img src="karen.jpg" alt="Karen" />。同样,可以为空元素应用最小化标签语法,例如:<br />。;另一种XML中可供选择的语法<br></br>在现行的用户代理中会造成不确定的结果。

C.3. 元素最小化和空元素内容

可以放置内容模型非空(not EMPTY)元素的空白实例(例如, 一个空的标题或段落),但不能用其最小化形式(如可以写成 <p> </p>而不能写成<p />)。

C.4. 镶入的样式表和脚本

如果你的样式表使用<&]]>--,请使用外部样式表。如果你的脚本使用<&]]>--,请使用外部脚本。注意:XML分析器会默认允许删除其中的这些内容和注释。因此,历史上用注释的方法隐藏样式表和脚本来使文档向后兼容的方法在基于XML的用户代理中行不通。

C.5. 属性值内的断行

避免在属性值内使用断行和连续的空格。他们在用户代理中会被不一致的处理。

C.6. Isindex

不要在文档head中指定一个以上的 isindex 元素。不赞成使用 isindex 元素,赞成使用 input元素。

C.7.langxml:lang 属性

langxml:lang 属性指定元素的语言,并且xml:lang具有优先权。

C.8. 片断标识符

XML中, URI-参考[RFC2396]以 "#foo"为形式的片断标识符结束不代表元素中有name="foo"的属性。当然,这也指元素拥有一个类型为 ID的属性,例如:HTML中的id属性。许多现有的HTML客户端不支持用这种ID类型属性的用法。所以,同一数值也许被这两种属性支持来保持最大的向前和向后兼容性。

进一步,因为类型为ID的属性的合法值相比 CDATA类型要小的多,所以 name 属性被改变为NMTOKEN。这样做是因为它只能和 ID类型有相同的值,或者 Name是XML 1.0 Section 2.3产生的。不幸的是,此约束在XHTML 1.0 DTDs中没有被表达 。因为有这样的变化, 当转换现存的HTML文档时,不会发生。在文档中,这些属性的值必须是唯一的、有效的,并且转换中片段标识符的参考必须更新 。

注意,在XML 1.0 Section 2.3, production 5中的合法值的集合远远多于HTML 4中 IDNAME类型定义里所允许使用的 。

最后,XHTML 1.0不赞成在 a, applet, form, frame, iframe, img, 和 map元素中 name属性的用法,并且在随后的XHTML版本中,它将被除去。

C.9. 字符编码

历史上,HTML的字符编码由网络服务器通过HTTP Content-type头部的charset参数指定,或通过文档内部的 meta元素来指定,在XML文档中,字符编码通过XML声明来指定 (例如: <?xml version="1.0" encoding="EUC-JP"?>)。为了正确地表示文档所应用的编码,最好的办法是确保网站服务器提供正确的头部代码,如果这个不能实现,必须在XHTML文档内设置XML字符编码声明和 metahttp-equiv声明(例如: <meta http-equiv="Content-type" content="text/html; charset=EUC-JP" />)。在XHTML一致的用户代理中,XML 声明的编码声明具有优先权。

注意:如果文档必须在meta http-equiv包含字符编码声明 ,文档总会被HTTP服务器和/或用户代理解释为在声明中确定的媒体类型。如果文档承担为多种媒体类型,HTTP服务器必须被设置文档的编码。

C.10. 布尔属性

当出现布尔属性以全名(非最小化)形式出现时,某些HTML用户代理不能解释这些布尔属性。作为XML 1.0的需要,注意这个问题不会影响与HTML 4一致的用户代理。这些属性包括: compact, nowrap, ismap, declare, noshade, checked, disabled, readonly, multiple, selected, noresize, defer.

C.11. 文档对象模型和 XHTML

文档对象模型 第1级[DOM]标准 为XML和HTML定义了文档对象模型接口,HTML 4 的文档对象模型指定元素和属性返回值为大写。而XML文档对象模型元素和属性的返回值是他们在文档中所书写的。在XHTML 1.0 中,元素和属性的返回值是小写的,解决这个问题的办法有两种:

  1. 访问XHTML文档,通过DOM承担网络媒体类型为text/html的用户代理能使用HTML DOM,并且通过接口返回大写的元素和属性的。
  2. 访问XHTML文档,通过DOM承担网络媒体类型为text/xmlapplication/xmlapplication/xhtml+xml的用户代理能使用XML DOM,元素和属性返回为小写。一些XHTML元素可能或不可能出现在对象树中,因为在内容模型中,他们不是必须的(例如. thetable中的tbody元素)。这种情况的发生是因为在HTML 4 中,某些元素允许最小化,它们的开始和结束标记被忽略了(SGML语言的特性)。在XML中不可能发生。用户代理需要适应这种情况。有关本主题更多的补充资料,请参考 [DOM2] 。

C.12. 在属性中用“和”字符(或其他地方)

在SGML和XML中, 和字符 ("&")声明实体参考的开始 (例如: &reg; 代表注册商标符号 "®"). 不幸的是,在HTML文档中,许多HTML用户代理默默的忽略了和字符,仅仅把和字符当作字面上的”和“来处理。基于XML的用户代理不会再容忍这样的错 误用法,错误应用和字符的文档将不会被认作为”有效“,并且从此不再遵守这个规范。为了确保文档在HTML用户代理和XML用户代理中被兼容,文档中字面 上应用的和字符被将被当作自身的实体参考(比如:”&amp;“)例如:a元素中的href属性带有参数指向一个CGI脚本,它必须被表达为:http://my.site.dom/cgi-bin/myscript.pl?class=guest&amp;name=user,而不能写成http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user

C.13. 层叠样式表 (CSS) 和 XHTML

层叠样式表 第2级[CSS2] 定义了应用于XHTML或HTML文档语法树的样式,语法的不同会造成视觉和听觉结果上的差异,根据选择器用途,下面的规则可以减少这种差别:

  1. XHTML的CSS样式表的元素和属性应该小写。
  2. 在表格里,HTML用户代理的分析器将会推断出tbody元素,但XML的用户代理不会这样做。因此,你应该明确的在样式表中添加一个tbody元素的样式。
  3. 在XHTML命名空间规范下, 用户代理通过属性类型ID来识别”id“属性。因此,即使用户代理不读取DTD,样式表也能继续使用缩写为“#”的选择器语法。
  4. 在XHTML命名空间规范下, 用户代理识别”id“属性。因此,样式表也能继续使用缩写为“#”的选择器语法。
  5. CSS为HTML和XML提供不同的一致性规则; 要意识到HTML规则应用于XHTML文档中会被当作HTML,XML规则应用于 XHTML文档中会被当作 XML。

C.14. XML文档中调用Style元素

在HTML 4 和 XHTML中, style元素用来在定义文内的样式规则,但在XML中,通过XML样式宣告来定义样式规则。为了兼容这个规则,style需要设置它的 id 属性来作为片断标识符,并且XML样式宣告应该调用这个片断。例如:

<?xml-stylesheet href="http://www.w3.org/StyleSheets/TR/W3C-REC.css" type="text/css"?>
<?xml-stylesheet href="http://www.ui163.com/html.html#internalStyle" type="text/css"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>An internal stylesheet example</title>
<style type="text/css" id="internalStyle">
  code {
    color: green;
    font-family: monospace;
    font-weight: bold;
  }
</style>
</head>
<body>
<p>
  This is text that uses our 
  <code>internal stylesheet</code>.
</p>
</body>
</html>

C.15. HTML 和 XML中的空格

有些字符在html中是合法的,但在XML中是不合法的。例如:在HTML中, Formfeed字符(U+000C) 会被当作空格来显示,而在XML中因为未定义,所以是不合法的。

C.16. 命名字符参考 &apos;

XML 1.0 中引用了命名字符参考&apos;,但HTML中没有对它的引用,编写者为了更好的支持浏览器,请用&#39;代替命名字符参考&apos;

D. 致谢

This appendix is informative.

本标准由W3C工作组众多成员编写。

第2版的编写成员有:

Steven Pemberton, CWI/W3C (HTML Working Group Chair)
Daniel Austin, Grainger
Jonny Axelsson, Opera Software
Tantek Çelik, Microsoft
Doug Dominiak, Openwave Systems
Herman Elenbaas, Philips Electronics
Beth Epperson, Netscape/AOL
Masayasu Ishikawa, W3C (HTML Activity Lead)
Shin'ichi Matsui, Panasonic
Shane McCarron, Applied Testing and Technology
Ann Navarro, WebGeek, Inc.
Subramanian Peruvemba, Oracle
Rob Relyea, Microsoft
Sebastian Schnitzenbaumer, SAP
Peter Stark, Sony Ericsson

第1版的编写成员有:

Steven Pemberton, CWI (HTML Working Group Chair)
Murray Altheim, Sun Microsystems
Daniel Austin, AskJeeves (CNET: The Computer Network through July 1999)
Frank Boumphrey, HTML Writers Guild
John Burger, Mitre
Andrew W. Donoho, IBM
Sam Dooley, IBM
Klaus Hofrichter, GMD
Philipp Hoschka, W3C
Masayasu Ishikawa, W3C
Warner ten Kate, Philips Electronics
Peter King, Phone.com
Paula Klante, JetForm
Shin'ichi Matsui, Panasonic (W3C visiting engineer through September 1999)
Shane McCarron, Applied Testing and Technology (The Open Group through August 1999)
Ann Navarro, HTML Writers Guild
Zach Nies, Quark
Dave Raggett, W3C/HP (HTML Activity Lead)
Patrick Schmitz, Microsoft
Sebastian Schnitzenbaumer, Stack Overflow
Peter Stark, Phone.com
Chris Wilson, Microsoft
Ted Wugofski, Gateway 2000
Dan Zigmond, WebTV Networks

E. 参考

This appendix is informative.

[CSS2]
"Cascading Style Sheets, level 2 (CSS2) Specification", B. Bos, H. W. Lie, C. Lilley, I. Jacobs, 12 May 1998.
Latest version available at: http://www.w3.org/TR/REC-CSS2
[DOM]
"Document Object Model (DOM) Level 1 Specification", Lauren Wood et al., 1 October 1998.
Latest version available at: http://www.w3.org/TR/REC-DOM-Level-1
[DOM2]
"Document Object Model (DOM) Level 2 Core Specification", A. Le Hors, et al., 13 November 2000.
Latest version available at: http://www.w3.org/TR/DOM-Level-2-Core
[HTML]
"HTML 4.01 Specification", D. Raggett, A. Le Hors, I. Jacobs, 24 December 1999.
Latest version available at: http://www.w3.org/TR/html401
[POSIX.1]
"ISO/IEC 9945-1:1990 Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language]", Institute of Electrical and Electronics Engineers, Inc, 1990.
[RFC2045]
"Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", N. Freed and N. Borenstein, November 1996. Note that this RFC obsoletes RFC1521, RFC1522, and RFC1590.
[RFC2046]
"RFC2046: Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", N. Freed and N. Borenstein, November 1996.
Available at http://www.ietf.org/rfc/rfc2046.txt. Note that this RFC obsoletes RFC1521, RFC1522, and RFC1590.
[RFC2119]
"RFC2119: Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, March 1997.
Available at: http://www.ietf.org/rfc/rfc2119.txt
[RFC2376]
"RFC2376: XML Media Types", E. Whitehead, M. Murata, July 1998.
This document is obsoleted by [RFC3023].
Available at: http://www.ietf.org/rfc/rfc2376.txt
[RFC2396]
"RFC2396: Uniform Resource Identifiers (URI): Generic Syntax", T. Berners-Lee, R. Fielding, L. Masinter, August 1998.
This document updates RFC1738 and RFC1808.
Available at: http://www.ietf.org/rfc/rfc2396.txt
[RFC2854]
"RFC2854: The text/html Media Type", D. Conolly, L. Masinter, June 2000.
Available at: http://www.ietf.org/rfc/rfc2854.txt
[RFC3023]
"RFC3023: XML Media Types", M. Murata, S. St.Laurent, D. Kohn, January 2001.
This document obsoletes [RFC2376].
Available at: http://www.ietf.org/rfc/rfc3023.txt
[RFC3066]
"Tags for the Identification of Languages", H. Alvestrand, January 2001.
Available at: http://www.ietf.org/rfc/rfc3066.txt
[RFC3236]
"The 'application/xhtml+xml' Media Type", M. Baker, P. Stark, January 2002.
Available at: http://www.ietf.org/rfc/rfc3236.txt
[XHTML+MathML]
"XHTML plus Math 1.1 DTD", "A.2 MathML as a DTD Module", Mathematical Markup Language (MathML) Version 2.0. Available at: http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd
[XHTMLMIME]
"XHTML Media Types", Masayasu Ishikawa, 1 August 2002.
Latest version available at: http://www.w3.org/TR/xhtml-media-types
[XHTMLMOD]
"Modularization of XHTML", M. Altheim et al., 10 April 2001.
Latest version available at: http://www.w3.org/TR/xhtml-modularization
[XML]
"Extensible Markup Language (XML) 1.0 Specification (Second Edition)", T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, 6 October 2000.
Latest version available at: http://www.w3.org/TR/REC-xml
[XMLNS]
"Namespaces in XML", T. Bray, D. Hollander, A. Layman, 14 January 1999.
XML namespaces provide a simple method for qualifying names used in XML documents by associating them with namespaces identified by URI.
Latest version available at: http://www.w3.org/TR/REC-xml-names
[XMLC14N]
"Canonical XML Version 1.0", J. Boyer, 15 March 2001.
This document describes a method for generating a physical representation, the canonical form, of an XML document.
Latest version available at: http://www.w3.org/TR/xml-c14n