网页标准初学:XHTML的标准定义

王朝html/css/js·作者佚名  2006-11-24
宽屏版  字体: |||超大  

文档一致性

本版本 XHTML 提供了严格的遵循XHTML文档的定义,受限于XHTML名址提供的标签和属性。使用XHTML其它名址空间的信息,如RDF表达的元数据,请参看Section 3.1.2 。

严格遵循的文档。

一个严格遵循XHTML的文档只需要本规范书描述的强制性功能,必须依照下列标准:

它必须经过附录A AppendixA中的3中DTD之一的验证。

文档的根元素必须是<html>。

文档的根元素必须用xmlns属性[XMLNAMES]指定XHTML名址。XHTML的名址在http://www.w3.org/1999/xhtml中定义。

在根元素之前,必须有一个DOCTYPE 声明。DOCTYPE声明中包含的公共标识符必须引用附录A AppendixA中的3中DTD的一种,每种DTD有各自的正式公共标识符。系统标识符可以改变以适应本地系统。

<!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">

下面是一个最小的XHTML文档示例:

<?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://vlib.org/">vlib.org</a>.</p>

</body>

</html>

注意在这个例子中含有XML声明。 XML声明并不是在所有的XML文档中都是必须的。XHTML被强烈建议使用XML声明。当字符编码不是缺省的UTF-8或UTF-6时,这样的声明是必须的。

在XHTML中使用其它名址空间

在XHTML名址空间中可以用[XMLNAMES]使用其它XML名址空间,尽管这样文档会不是严格遵循XHTML的文档。W3C将在以后致力为多名址空间指定一致性的问题。

下面的例子说明XHTML1.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>

下面的例子说明XHTML1.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>

用户代理程序一致性

一个遵从的用户代理程序必须遵照下面所有标准:

为和XML1.0推荐标准一致 [XML],用户代理程序必须分析和评估XHTML文档的编排良好性。如果用户代理程序宣称自己是一个带验证能力的用户代理,它还必须依照[XML]安文档引用的DTD来验证文档。

当用户代理程序宣称支持本规范书定义的功能facilities时,它必须按功能的定义来支持。

当用户代理程序按一般的XML来处理XHTML文档时,它应当只将ID类型的属性(如多数XHTML元素的ID属性)识别成片段标识符。

如果用户代理程序遇到一个它不识别的元素,它必须显示元素的内容。

如果用户代理程序遇到一个它不识别的属性,它必须忽略整个属性的定义(即属性及其值)。

如果用户代理程序遇到一个它不识别的属性值,它必须使用使用属性的缺省值。

如果它遇到一个实体引用(不是预定义了的实体),用户代理程序没有处理过其声明(如果声明是在用户代理程序没有读到的外部子集中就会发生),实体引用应该以字符显示(以&符号开始,以半冒号结束),以编排成实体引用。

在显示内容时,用户代理程序如果遇到它不认识的字符或认识但不能显示字符实体引用,它应该以显眼的方式告诉用户发生了异常显示。

下面的字符在 [XML]中被定义为 空白(whitespace)字符:

空格 (&#x0020;)

Tab (&#x0009;)

回车 (&#x000D;)

换行 (&#x000A;)

XML处理程序将不同系统的行结束码规格化为单个换行附传递给应用。因此XHTML还必须将下列字符看成空白字符:

换页 (&#x000C;)

0宽度空格 (&#x200B;)

对 'xml:space' 属性被设为”保留”的元素,用户代理程序必须保持所有空白字符的原样 (引导和结尾处空白字符除外,这些字符应该被删除). 否则,按下列规则处理空白字符:

所有块元素周围的空白字符应该被删除。

注释全部去除,不影响空白符的处理。注释两旁的一个空白符被处理为两个空白符

引导和结尾处空白字符应该被删除

块元素内的换行字符必须转换成空格 ('xml:space' 属性被设为”保留”时例外)。

一串连续的空白字符必须减少为单个空格 ('xml:space' 属性被设为”保留”时例外)。

在显示时,用户代理程序应该以恰当的方式显示文档内容为文档内容书写的语言。在主要是拉丁书写体的语言中,ASCII空格典型的用来编码语法上的词的分界和印刷上的空白; 在和Nagari书写体相关的语言中 (如梵语,泰语等),语法上的边界可以用ZW空格字符编码,但是在显示输出时一般不用印刷上的空格表示; 用阿拉伯语形式书写体的语言,可以用空格字符编码印刷上的空白,单不能用ZW空格定界内部的文法分界(如,在英语看来是一个词的'kitAbuhum' = 'kitAbu-hum' = 'book them' == their book ,在阿拉伯语中编码为几个词); 中文书写体习惯则一般既不用这种方式编码分界也不使用印刷上的空白。

属性的值中的空白符的处理方式按照[XML]。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有