WD-html-in-xml-19990304
XHTML(XHTML)™1.0:可扩展超文本标记语言
HTML 4.0在XML中的改写1
W3C工作草案 1999年3月4日
- 此版本:
- http://www.w3.org/TR/1999/WD-html-in-xml-19990304
- 以前的版本:
- http://www.w3.org/TR/1999/WD-html-in-xml-19990224
- http://www.w3.org/TR/1999/WD-html-in-xml-19981205
- 最新公开版本:
- http://www.w3.org/TR/WD-html-in-xml
- 也可作为本地浏览压缩存档
- 版权:
- 版权所有©1998-1999W3C公司(麻省理工学院,印度,庆应(Keio)),所有权利保留。
- 作者:
- Steven Pemberton,CWI(HTML工作组主席)
- Murray Altheim,太阳微系统公司
Daniel Austin,CNET:计算机网络
HTML作家协会Frank Boumphrey
约翰·伯格,米特
安德鲁·多诺霍(Andrew W.Donoho),IBM
Sam Dooley,IBM
Klaus Hofrichter,总经理
W3C菲利普·霍施卡
石川正雄,W3C
华纳十凯特,飞利浦电子
彼得·金,Unwired Planet
Paula Klante,JetForm公司
W3C松井信一/松下
Shane McCarron,开放集团
Ann Navarro,HTML作家协会
夸克·扎克·尼斯
Dave Raggett,W3C/HP
微软公司Patrick Schmitz
Chris Wilson,微软
泰德·乌戈夫斯基(Ted Wugofski),网关2000
Dan Zigmond,网络电视网络
摘要
该规范定义了XHTML 1.0,这是HTML的重新定义4.0作为XML 1.0应用程序,对应三个命名空间到HTML 4.0定义的版本。元素的语义和它们的属性在W3C HTML推荐标准中定义4.0. 这些语义为未来奠定了基础XHTML的可扩展性。与现有HTML用户的兼容性代理可以通过遵循一小部分准则来实现。
本文件的状态
本工作草案可由以下人员更新、替换或作废其他W3C文档。使用W3C Working是不合适的作为参考材料的草稿或引用它们作为“工作进度”。请注意,本文件正在进行中不意味着得到W3C公司会员.
本规范位于最后一次通话、和请于1999年3月24日前提出意见。此版本的工作草案修正了前一个草案中检测到的几个错误version(2月24日):框架元素缺少src属性,名称空间URI错误地以“.dtd”结尾。
本文件作为W3C HTML活动.目标HTML工作组
(成员只有)在HTML工作组章程 (成员只有).
评论
有一个问题在工作组,我们特别有兴趣接收评论:我们是否应该注册一种新的互联网媒体类型“text/xhtml”。
简单地说,这两种观点是:是的,这是唯一的方法在不访问资源的情况下识别应用程序类型;否-全部XML应用程序会遇到这个问题,而答案不是注册每个应用程序。
正在继续研究如何以定义文档配置文件为基础有关模块化html以及将其与其他XML标记集组合的信息,请参见第6节:“未来发展方向".
请将此文档的详细评论发送至www-html-editor@w3.org.我们不能保证会有个人回应,但我们会在回应时尝试适当的。关于HTML功能的公开讨论在邮件列表网址:www-html@w3.org(档案文件). W3CHTML工作人员联系方式是戴夫拉格特.
目录
XHTML是HTML 4.0的重新表述[超文本标记语言]作为XML 1.0的应用程序[XML].
XHTML 1.0指定了三个XML名称空间,对应于三个HTML 4.0 DTD:严格、过渡和框架集。每个这三个名称空间由其自己的URI标识。
XHTML 1.0是一系列未来文档类型的基础扩展和子集HTML。我们将更详细地讨论这个想法在关于的部分中未来方向。
HTML 4.0[超文本标记语言]是SGML(标准通用标记语言)符合国际标准ISO 8879的应用被广泛视为世界标准出版语言宽带。
SGML是一种描述标记语言的语言,尤其是用于电子文档交换、文档管理、,和文档发布。HTML是一种定义语言的示例在SGML中。
自20世纪80年代中期以来,SGML就一直存在相当稳定。这种稳定性很大程度上源于以下事实:语言既丰富又灵活。这种灵活性,然而,这是有代价的,而且代价是复杂程度这阻碍了其在多种环境中的应用,包括万维网。
正如最初设想的那样,HTML将成为交换科学和其他技术文件,适用于非文档专家使用。HTML解决了SGML的问题通过指定一组结构和语义来实现复杂性标签适合编写相对简单的文档。在除了简化文档结构外,HTML还添加了支持用于超文本。后来添加了多媒体功能。
在极短的时间内,HTML变得非常流行并迅速超出其最初目的。自从HTML问世以来,HTML中使用的新元素已经迅速发明(作为标准)并将HTML调整为垂直、高度专业化、市场化。过多的新元素导致了不同文档之间的兼容性问题平台。
由于软件和平台的异构性迅速增加很明显,“经典”HTML4.0的适用性在这些平台上使用有点受限。
XML是可扩展标记的缩写语言™,是eXtensible Markup的缩写语言[XML].
XML被认为是一种重新获得权力和SGML的灵活性,而不是其复杂性。尽管受限形式的SGML,尽管如此,XML保留了大部分SGML功能和丰富性,但仍然保留了SGML的所有常见功能使用的功能。
在保留这些有益功能的同时,XML删除了许多SGML更复杂的特性使创作和设计合适的软件既困难又昂贵。
内容开发人员采用以下两个主要原因XHTML(XHTML):
首先,XHTML被设计为可扩展的。这种可扩展性依赖于文档的XML要求形成良好的。在SGML下,添加了一个新的元素组意味着整个DTD的改变。在一个基于XML的DTD,所需要的只是新的元素集内部一致且形式良好,可以添加到现有的数字电视。大大简化了新元素集合。
其次,XHTML是为可移植性而设计的。将会有越来越多地使用非桌面用户代理访问互联网文件。一些估计表明,到2002年将在这些备用服务器上进行Internet文档查看平台。在大多数情况下,这些平台不会桌面平台的计算能力,不会被设计为像当前用户代理所做的那样,适应格式错误的HTML。事实上,如果这些用户代理没有收到格式良好的XHTML可能根本不显示文档。
本规范中使用了以下术语。这些条款扩展中的定义[RFC2119]在里面基于ISO/IEC 9945-1:1990中类似定义的方法[位置.1]:
- 定义的实施
- 当一个值或行为被保留时,它是实现定义的定义[并记录]相应的正确文档结构的要求。
- 五月
- 关于实现,单词“may”是指解释为本规范中不需要的可选功能但可以提供。关于文件符合性,单词“may”表示不得使用可选功能。术语“可选”与“可以”的定义相同。
- 必须
- 在本规范中,“必须”一词应解释为实施或严格的强制性要求符合XHTML文档,具体取决于上下文。术语“应”与“必须”的定义相同。
- 保留
- 未指定值或行为,但不允许由合格文件使用,也不由合格文件支持用户代理。
- 应该
- 关于实现,“应该”一词应该是解释为实施建议,但不是要求。关于文件,“应该”一词是解释为文档和严格符合XHTML文档的要求。
- 支持
- 本规范中的某些设施是可选的。如果该工具受支持,它的行为如下所示规范。
- 未指定
- 当未指定值或行为时,规范未定义设备在即使面对使用设施。一个文档,它要求在实例,而不是在使用时容忍任何行为工具,不是严格符合XHTML文档。
- 属性
- 属性是DTD中声明的元素的参数。属性的类型和值范围,包括可能的默认值值,在DTD中定义。
- DTD公司
- DTD或文档类型定义是XML的集合声明作为集合定义了法律结构,元素、和属性可供使用的在符合DTD的文件中。
- 文件
- 文档是一种数据流,在与它引用的任何其他流的结构都是这样的包含在中的信息元素组织方式为在关联的DTD公司。请参阅文件符合性了解更多信息。
- 元素
- 元素是在DTD公司.元素的内容模型在DTD公司和其他语义可以在对元素。
- 设施
- 功能包括元素,属性、和与之相关的语义元素和属性。支持该功能的实现是据说要提供必要的设施。
- 实施
- 实现是一个提供设施以及支持此规范的服务。请参见用户代理一致性了解更多信息。
- 正在分析
- 解析是指文件被扫描,并且包含在文件已筛选到上下文中元素其中的信息是结构化的。
- 致使
- 呈现是指在文件是提出了。本演示以最合适的形式进行环境(例如听觉、视觉、印刷)。
- 用户代理
- 用户代理是实施检索和显示XHTML文档。请参见用户代理一致性了解更多信息。
- 验证
- 验证是一个过程文件已验证针对关联方DTD公司,确保结构、使用属于元素,以及使用属性是一致的中的定义DTD公司.
- 形成良好的
- A类文件结构良好根据中定义的规则第2.1节XML 1.0建议[XML]基本上,这个定义声明元素,由其开始和结束分隔标记之间正确嵌套。
此版本的XHTML仅在术语中定义文档一致性严格符合XHTML文档的。A严格遵守XHTML文档是只需要工具的文档在本规范中被描述为强制性的。此类文件必须满足以下所有标准:
-
它必须根据中找到的三个DTD之一进行验证附录A.
-
文档的根元素必须是<html>
.
-
文档的根元素必须指定三个元素中的一个通过使用圣诞节
属性[XML名称]。指定的命名空间必须与文档声称要验证的DTD相匹配。定义的命名空间为:
-
http://www.w3.org/Profiles/xhtml1-strict网站
-
http://www.w3.org/Profiles/xhtml1-transitional网站
-
http://www.w3.org/Profiles/xhtml1-框架集
-
在根元素。DOCTYPE中包含的公共标识符声明必须引用中找到的三个DTD之一附录A使用各自的正式公开标识符。可以修改系统标识符适当地。
<!DOCTYPE(文件类型)html PUBLIC“-//W3C//DTD XHTML 1.0严格//EN”“xhtml1-strict.dtd”><!DOCTYPE(文件类型)html PUBLIC“-//W3C//DTD XHTML 1.0过渡//EN”“xhtml1-transitional.dtd”><!DOCTYPE(文件类型)html PUBLIC“-//W3C//DTD XHTML 1.0框架集//EN”“xhtml1-帧集.dtd”>
一个严格符合XHTML文档可能会被标记为互联网媒体类型文本/html
或文本/xhtml
。当标记为文本/html
,文件应遵循附录C.未能遵循这些指南几乎肯定会确保该文件不会通过在较旧的实现上进行处理。
下面是一个最小XHTML文档的示例。
<!DOCTYPE html PUBLIC“//W3C//DTD XHTML 1.0严格//EN”“xhtml1-strict.dtd”><html xmlns=“http://www.w3.org/Profiles/xhtml1-strict网站"><头部><title>虚拟库</头><body><p>已移至<a href=“网址:http://www.vlib.org/“>www.vlib.org</p></body></html>
合格的用户代理必须满足以下所有要求标准:
- 为了与XML 1.0建议保持一致[XML],用户代理必须分析和计算XHTML文档格式良好。如果用户代理声称一个验证用户代理,它还必须根据验证文档其参考DTD符合[XML].
- 当用户代理声称支持设施在本规范中定义或要求本规范通过规范性引用,必须在符合设施定义的方式。
由于XHTML是一个XML应用程序在基于SGML的HTML 4.0中完全合法的实践[超文本标记语言]必须更改。
井然有序引入新概念了吗通过[XML]。本质上这意味着所有元素都必须具有结束标记或以特殊形式书写(如下所述),并且所有元素必须嵌套。
尽管重叠在SGML中是非法的,但它得到了广泛的容忍在基于SGML的浏览器中。
正确:嵌套元素。
<p>这里有一个强调<em>第</em>段</p>(第页)
错误:元素重叠
<p>这里有一个强调<em>第段</p>(第页)</em>
XHTML文档必须对所有HTML元素使用小写,并且属性名称。这种差异是必要的,因为XML区分大小写,例如<li>和<li>被视为不同的标签。
在基于SGML的HTML 4.0中,允许省略某些元素结束标记;后面的元素表示关闭。这个基于XML的XHTML中不允许省略。所有其他元素比DTD中声明的空
必须有结束标记。
正确:终止元素
<p>这里有一段</p> <p>这是另一个第段</p>(第页)
错误:未端接元件
<p>这里有一段<p> 这是另一个第段。
所有属性值都必须加引号,即使那些看起来是数字。
XML不支持属性最小化。属性-值对必须写完整。属性名称,例如契约
和选中的
不能出现在元素中,而其值为明确规定。
正确:未最小化属性
<dl compact=“compact”>
空元素必须以结尾/>
例如,<br/>
或<小时/>
.
XHTML改变了HTML 4.0处理空白的规则在属性值中。特别是,XHTML将引导和尾部空白,并映射一个或多个空白的序列字符(包括换行符)转换为单个字间空格(西文字母的ASCII空格字符)。请参见第3.3.3节属于[XML].
在XHTML中,脚本和样式元素被声明为具有#PCDATA公司
内容。因此,以下实体&它;
和&;
将由XML处理器扩展到<
和&
分别是。包装脚本或样式元素的内容在中CDATA(CDATA)
标记的部分避免了这些扩展实体。
<脚本><![CDATA(CDATA)[…未转义的脚本内容。。。]]></script>
CDATA(CDATA)
节由XML处理器识别,并显示为文档对象模型中的节点,请参见第1.3节DOM的1级建议[文件管理].
另一种方法是使用外部脚本和样式文件。
SGML使DTD的编写者能够排除特定的元素中包含的元素。此类禁令(称为“排除”)在XML中是不可能的。
例如,HTML4.0 Strict DTD禁止嵌套'一
'另一个中的元素'一
'元素设置为任何子体深度。它无法在XML中详细说明此类禁令。尽管这些禁令无法在DTD中定义,某些元素不应嵌套。这些要素和要素的摘要不应嵌套在其中的内容见规范附录B.
当前的HTML 4.0 DTD不反映对所做的勘误表更改HTML 4.0建议[超文本标记语言]XHTML DTD包含以下内容勘误表,从而在XHTML中更正HTML 4.0 DTD中的错误DTD。勘误表位于[ERRATA公司].
HTML Tidy是自动转换的W3C示例代码现有web内容到XHTML。它可以处理多种标记错误,并提供平滑转换现有HTML文档转换为XHTML。有关更多信息,请参阅[整洁].
虽然没有要求XHTML 1.0文档与现有用户代理兼容,实际上这很容易完成。创建兼容文档的指南可以是在中找到附录C.
可以使用以下方法之一传输XHTML文档互联网媒体类型。使用这些类型,文档作者可以通过创建XHTML文档来创建可移植的互联网内容可用于通用XML应用程序(文本/xml
),到旧式HTML用户代理(文本/html
)、和到新XHTML应用程序(文本/xhtml
).
因为任何XHTML文档都是格式良好且有效的XML文件,可以使用互联网媒体类型进行传输文本/xml
[RFC2376]。但是,将XHTML文档传输为文本/xml
以两种方式丢失信息:
首先,本规范文本中给出的约束条件不被与文档关联的XHTML DTD捕获无法由通用XML验证分析器强制执行。
第二,呈现HTML 4.0中描述的语义关联的样式表未捕获的规范文档不能由通用XML呈现应用程序。
简而言之,如果收件人知道文本/xml
,它不知道要检查特定于XHTML的解析约束无法知道如何呈现XHTML特定的语义。
服务器可能仍然选择将XHTML文档传输为文本/xml
,在仅通用的情况下需要对文档进行XML处理。
XHTML未来版本的最终目标之一是传输XHTML不会丢失此类信息文档为文本/xml
然而,本规范还没有实现这个目标。
如果XHTML文档符合附录C,可以使用互联网媒体类型文本/html
然而,传输XHTML文档作为文本/html
两个人失去信息方式:
首先,接收者无法从媒体类型判断文档声称是有效的XML文档,因此不能使用通用XML用于检查文档语法或呈现文档的工具。它因此必须准备检查HTML 4.0语法和/或呈现HTML4.0语义特别的时尚。
其次,接收者无法仅从媒体类型判断文档声称是有效的XHTML 1.0文档,因此它不能强制执行XHTML文档所需的非必需约束HTML 4.0文档的。
服务器可能仍然选择将XHTML文档传输为文本/html
,在XHTML支持的情况下收件人中不存在。
使用Internet Media Type传输XHTML文档文本/html
将有助于从HTML到XHTML并鼓励尽早采用。XHTML文档使用这种类型传输的数据可能会以通常的方式进行处理方式是现有的用户代理。
由于上述每种互联网媒体类型文本/xml
和文本/html
丢弃信息关于XHTML文档,W3C打算注册互联网媒体类型文本/xhtml
.
遇到类型为的文档的合格用户代理文本/xhtml
可以假定该文件声称符合本规范。这种假设意味着文件类型文本/xhtml
必须检查文档检查格式是否正确,并可以检查文件的有效性与文档关联的XHTML DTD。
我们非常欢迎就其作用进行讨论媒体类型和替代机制。
XHTML 1.0提供了一系列文档类型的基础将扩展和子集XHTML,以支持广泛的通过定义模块并指定组合这些模块的机制。此机制将启用以统一的方式扩展和细分XHTML 1.0新模块的定义。
随着XHTML的使用从传统桌面用户转向很明显,并非所有的XHTML所有平台上都需要元素。例如,手持设备或手机可能只支持XHTML的一个子集元素。
模块化过程将XHTML分解为一系列较小的元素集。然后可以重新组合这些元素以满足不同社区的需求。
这些模块将在稍后的W3C文档中定义。
模块化带来了几个优点:
-
它提供了一种用于子设置XHTML的正式机制。
-
它提供了扩展XHTML的正式机制。
-
它简化了文档类型之间的转换。
-
它促进了新文档类型中模块的重用。
文档配置文件指定集合的语法和语义文件。与文档配置文件的一致性提供了基础实现互操作性保证。文档配置文件指定处理此类文件所需的设施,例如可以使用图像格式、脚本级别、样式表支持等等。
对于产品设计师来说,这使各个小组能够定义他们自己的标准配置文件。
对于作者来说,这将避免编写多个不同客户的文档版本不同。
对于化学家、医生或数学家,这允许使用标准HTML元素加上一组适合专家的需求。
本附录为规范性附录。
这些DTD和实体集构成本规范的一部分规范。完整的DTD文件集和XML声明和SGML开放目录包含在zip文件对于本规范。
这些DTD近似于HTML 4.0 DTD。很可能在以下情况下DTD是模块化的,DTD的构造方法是与HTML4.0更接近。
XHTML实体集与HTML4.0相同,但具有已修改为有效的XML 1.0实体声明。请注意欧元货币符号的实体(&欧元;
或€
或€;
)是定义为特殊字符的一部分。
本附录为规范性附录。
下列要素对哪些要素有禁令可以包含(请参见第4.1.9条). 此禁令适用于所有嵌套深度,即包含所有后代元素。
一 |
不能包含其他一 元素。 |
之前 |
不能包含国际货币基金组织 ,对象 ,大的 ,小的 ,附属的 ,或啜饮 元素。 |
按钮 |
不能包含输入 ,选择 ,文本区域 ,标签 ,按钮 ,形式 ,字段集 ,或iframe公司 元素。 |
标签 |
不能包含其他标签 元素。 |
形式 |
不能包含其他形式 元素。 |
本附录仅供参考。
本附录总结了作者的设计指南在现有HTML用户代理上呈现XHTML文档。
-
请注意,处理指令是在某些用户上呈现的代理人。
-
在尾部之前包含空格/
和>
空元素,例如。<br/>
,<小时/>
和<图像src=“karen.jpg”alt=“karen”/>
。此外,使用空元素的最小化标记语法,例如。<br/>
,作为替代语法<br></br>
XML允许给出许多现有用户代理中存在不确定性。
-
给定一个元素的空实例,该元素的内容模型不是空
(例如,空标题或段落)不使用最小化形式(例如使用<p></p>
而不是<p/>
).
-
如果样式表使用<
或&
或]]>
.使用如果脚本使用<
或&
或]]>
.
-
避免换行和多个空格字符属性值。用户处理这些问题的方式不一致代理人。
-
同时使用朗
和xml:lang
指定元素的语言时使用的属性。
-
在XML中,URI以表单的片段标识符结尾“#foo”
不要引用具有属性的元素name=“foo”
; 相反,它们指的是具有定义为类型的属性身份证件
例如身份证件
HTML 4.0中的属性。许多现有的HTML客户端不支持使用身份证件
-以这种方式键入属性,因此,如果您希望能够在HTML客户端上处理文档,您可能希望同时提供身份证件
和名称
值在目标元素上,例如。,<a id=“foo”name=“foo”></a>
-
要在文档中指定字符编码,请同时使用xml声明上的编码属性规范(例如。<?xml版本=“1.0”encoding=“EUC-JP”?>
)和元http-equiv语句(例如。<meta http-equiv=“内容类型”content='text.html;charset=“EUC-JP”'/>
).
本附录内容丰富。
- [CC/PP]
- “复合能力/偏好配置文件(CC/PP):用户端框架内容协商”,F.Reynolds,J.Hjelm,S.Dawkins,S.Singhal,1998年11月30日。
本文档描述了使用资源描述格式的方法(RDF)创建一个通用但可扩展的框架来描述用户首选项和设备功能。服务器可以利用此漏洞定制所提供的服务或内容。
网址:http://www.w3.org/TR/NOTE-CCPP网站
- [CSS2]
- “级联样式表,2级(CSS2)规范”,B.Bos,H.W.Lie,C.Lilley,I.Jacobs,1998年5月12日。
网址:http://www.w3.org/TR/REC-CSS2
- [文件管理]
- “文档对象模型(DOM)1级规范”,Lauren Wood等。,1998年10月1日。
网址:http://www.w3.org/TR/REC-DOM-Level-1网站
- [勘误表]
- “HTML 4.0规范勘误表”。
本文档列出了HTML 4.0规范的勘误表。
网址:http://www.w3.org/MarkUp/html40-updates/REC-html40-19980424-errata.html
- [超文本标记语言]
- “HTML 4.0规范”,D.Raggett、A.Le Horss、I.Jacobs,1997年12月18日,1998年4月24日修订。
网址:http://www.w3.org/TR/REC-html40
- [位置.1]
- “ISO/IEC 9945-1:1990信息技术-便携式操作系统接口(POSIX).第1部分:系统应用程序接口(API)[C语言]”,电气与电子工程师协会,1990
- [RFC2119]
- “RFC2119:RFC中用于指示需求级别的关键字”,S.Bradner,1997年3月。
网址:http://www.ietf.org/rfc/rfc2119.txt
- [RFC2376]
- “RFC2376:XML媒体类型”,E.Whitehead,M.Murata,1998年7月。
网址:http://www.ietf.org/rfc/rfc2376.txt
- [RFC2396]
- “RFC2396:统一资源标识符(URI):通用语法”,T.Berners-Lee,R.Fielding,L.Masinter,1998年8月。
本文档更新了RFC1738和RFC1808。
网址:http://www.ietf.org/rfc/rfc2396.txt
- [蒂迪]
- “HTML Tidy”是一种用于检测和纠正各种HTML中普遍存在的标记错误。它还可以用作将现有的HTML内容转换为格式良好的XML。整洁是以与其他W3C示例代码相同的条款提供,即出于任何目的免费,且完全由您自己承担风险。
可从以下网站获得:http://www.w3.org/Status.html#TIDY
- [XML]
- “可扩展标记语言(XML)1.0规范”,T.Bray,J.Paoli,C.M.Sperberg-McQueen,1998年2月10日。
网址:http://www.w3.org/TR/REC-xml
- [XML名称]
- “XML中的命名空间”,T.Bray,D.Hollander,A.Layman,1999年1月14日。
XML命名空间提供了一种简单的方法来限定通过将它们与URI标识的名称空间相关联来创建XML文档。
网址:http://www.w3.org/TR/REC-xml-names网站
- [样式]
- “将样式表与XML文档1.0版关联”,J.Clark,1999年1月14日。
本文档描述了将样式表与XML关联的方法通过将一个或多个处理指令包含在文档序言中xml-stylesheet的目标。
网址:http://www.w3.org/TR/PR-xml-stylesheet