1、HTML基础入门学识XHTML基础入门学识摘要XHTML 1.0是作为XML1.0应用而重新制定的HTML4。本规范书定义XHTML 1.0以及其中与HTML 4对应的3种文档类型定义(DTD,Document Type Definition)。 每个元素的语义和它们的属性已经在W3C Recommendation for HTML4中定义,它们是XHTML将来扩展的基础。只要遵循一小套指导方针,XHTML文档就能和现存的HTML用户代理程序兼容。本文档的状况本节描述本文档发布时的状况。其它的文档也许会取代本文档。W3C负责维护本文档系列的最新状况。本文档由W3C的成员和一些对此感兴趣的团体审
2、阅,并经主管认可而成为W3C推荐标准。 这是一个稳定的文档,可以作为参考材料或在其它文档中作为标准引用。W3C制定本推荐标准的目的就是使大家注意到本规范说明书,使之广泛传播,增强Web的功能和互用性。1. 什么是 XHTML?XHTML是一系列当前和将来的文档类型和程序块,它由HTML 4 HTML再生和扩展而来,HTML 4是其子集。XHTML系列文档基于XML,最终被设计用来与基于XML的用户代理程序一起工作。XHTML家族的详情及其发展过程在未来趋势一节中详述。 XHTML 1.0(本规范书)是XHTML家族的第一个文档。它是将3种HTML 4文档类型应用到XML 1.0 XML之后重新
3、形成的。其意图是,作为一种语言,它的内容既符合XML,并且如果依照一些简单的指导方针,也能被HTML4用户代理程序识别。开发者将它们的文档移植成为XHTML 1.0,会得到以下好处:XHTML文档遵从XML。这样,用标准的XML工具很容易查看,编辑和检验它们。XHTML文档可以在现有的HTML4代理用户程序中使用,也可以在新的XHTML用户代理程序中使用,在后者中可以达到与前者同样或更好的效果。 XHTML 文档中使用的应用程序(如script 和 applet) 可以是HTML 的文档对象模型(Document Object Model) ,也可以是 XML 的文档对象模型 DOM。 随着
4、XHTML 家族的发展,遵从XHTML 1.0的文档更有可能运用在各种XHTML环境中。XHTML家族是Internet发展的下一步。 将现在将文档移植成XML,开发者在确保他们的文档向前后兼容的同时,还能享有进入XML世界带来的好处。1.1 什么是HTML 4?HTML 4 HTML 是SGML (Standard Generalized Markup Language) 的一个应用,遵从国际标准ISO 8879,被广泛的当作 World Wide Web上的标准出版语言。SGML是一种描述标记语言,特别是那些用于电子文档交换,文档管理和文档发布语言的语言。HTML是SGML定义的语言的一个
5、实例。SGML出现在80年代中期,一直保持得很稳定。稳定是原因是它有丰富的特征和具有灵活性。但是,灵活性的带来一定程度的复杂性,限制了它在多种环境下的适应性,包括World Wide Web。HTML最初的构想是作为一种交换科学和其它技术文档的一种语言,供那些不熟悉书写文档的专家使用。HTML规定一小套结构语义标签,适于书写相对简单的文档,从而解决了SGML复杂性的问题。除了简化了文档结构外,HTML还加入了对超文本的支持,以后还增加了媒体功能。在非常短的时间内,HTML变得广泛流行,并且很快超出了其原来的目的。HTML(标准)内部的新元素以很快的速度创造出来,HTML也被很快的改编以用于垂直
6、的,高度专门化的市场。多余的新元素导致文档在跨平台时的兼容问题。随着软件和平台不一致性增加,很显然,“经典的”HTML 4在这些平台上使用的适用性就会受到一些限制。1.2 什么是 XML?XMLXML是Extensible Markup Language的缩写,创造XML的目的是重新获得SGML的能力和灵活性,而去除其大部分复杂的东西。尽管是一个受限制SGML的形式,但是XML仍保留了SGML的大部分功能和丰富性,还保留了SGML的所有常用特性。在保留这些有用的特性的同时,XML去掉了SMGL中很多更复杂的特性,这些特性使得书写和设计合适的软件既困难又昂贵。1.3 为什么需要XHTML?上面已
7、经提到了移植到XHTML的好处,一般来说,移植到XHTML的好处有:文档开发者和用户代理程序设计商常常用新方法,新标签来表达它们的想法。用XML导入新元素和新的元素属性相对来说更容易。XHTML家族被设计用来提供这些扩展,通过XHTML模块和开发新的遵从XHTML的模块的技术。(将在即将出台的XHTML模块化规范说明书中描述)。在开发文档和设计新用户代理程序时,这些模块将允许混合使用现有的和新的特性集。 各种替代的访问Internet的方法不断的被提出。一些人估计,到2002年,internet上75%的文档会在这些替代的平台上被查看。XHTML 在设计时就考虑到用户代理程序的协同工作性。通过
8、一个新的用户代理程序和文档协议机制,服务器、代理程序和用户代理程序将能够最佳地满足传输,最后,有可能开发出遵循XHTML的文档,能被任何遵循XHTML的用户代理程序使用。 2. 定义2.1 术语本规范书要用到下面的词条。这些词条基于ISO/IEC 9945-1:1990 POSIX.1中类似的定义,并扩展定义在RFC2119中:执行定义(Implementation-defined) 一个值或行为被执行定义时,它由执行来定义相应的需要以正确解释文档。 可以(May) 在执行时,词“可以”被解释为一个可选的特性,在本规范书中不是必须的,但是可以提供。对于文档一致性来说,词”可以”的意思是不能使用
9、可选的特性. ”可选的”(optional)和”可以”的定义是相同的。必须(Must) 在本规范书中,“必须”被解释为,在执行时或对于严格遵循XHTML的文档的强制需要。词条”应当”(shall)和”必须”的定义相同。. 保留(Reserved) 一个值或行为未被指定,但是不允许用于符合规范的文档,也不被符合规范的用户代理程序支持。 应该(Should) 在执行时,”应该”被解释为一个执行时的建议,但不是一个必须。对于文档来说,“应该”被解释为:编程练习时是推荐使用的,对于严格遵循XHTML的文档,则是必须的。 被支持(Supported) 本规范书中某些功能是可选的,如果一个功能被支持,它的
10、行为被本规范书规定。 未指定(Unspecified) 一个值或行为未被指定时,规范书不定义一个功能的可移植性要求,即使文档中使用了这个功能。在这种情况下,一个需要指定的行为的文档,而不是在使用这个功能时允许任何行为,不是一个严格遵循XHTML的文档。 2.2 常见词条属性(Attribute) 属性是在DTD中声明过的某个元素的一个参数。属性的类型和取值范围,包括它可能的缺省值,在DTD中定义。 DTD 一个 DTD,又称文档类型定义,是一个XML声明集合,在其中定义遵从DTD的文档中使用的合法的结构,元素和属性。 文档(Document) 文档是一个数据流,还包括它引用的其它数据流。文档的
11、结构是用相关的DTD定义的元素组织起来来保存信息。更多信息,请参看 Document Conformance 。 元素(Element) 元素是在DTD中声明的文档的结构单位。元素的内容模型在DTD中定义,额外的语义可以在另外的元素描述中定义。 功能(Facilities) 功能包括元素,属性和与元素属性相关的语义。支持这些功能的执行说成提供了所需的功能。执行(Implementation) 执行是指系统提供了功能和服务集以支持本规范书。更多信息,请参看User Agent Conformance。 分析(Parsing) 分析是扫描文档的动作,文档包含的信息被过滤成元素的上下文结构包含的信息
12、。 显示(Rendering) 显示是文档信息被呈现的动作。显示以最适合环境的形式完成(如声觉,视觉,打印)。 用户代理程序(User Agent) 用户代理程序是执行程序,获取并处理XHTML文档。更多信息,请查看User Agent Conformance。 验证(Validation) 验证是用相关的DTD检验文档的过程,以确信结构,元素的使用,属性的使用和DTD中的定义一致。 格式良好(Well-formed) 一个格式良好的文档的结构依照XML1.0推荐标准XML中2.1节Section 2.1的规定。基本上,这个定义规定了元素必须有起始和结束标签,要正确的互相嵌套。 3. XHTM
13、L 1.0的标准定义3.1 文档一致性本版本 XHTML 提供了严格的遵循XHTML文档的定义,受限于XHTML名址提供的标签和属性。使用XHTML其它名址空间的信息,如RDF表达的元数据,请参看Section 3.1.2 。3.1.1 严格遵循的文档。一个严格遵循XHTML的文档只需要本规范书描述的强制性功能,必须依照下列标准:它必须经过附录A AppendixA中的3中DTD之一的验证。文档的根元素必须是。 文档的根元素必须用xmlns属性XMLNAMES指定XHTML名址。XHTML的名址在http:/www.w3.org/1999/xhtml中定义。 在根元素之前,必须有一个DOCTY
14、PE 声明。DOCTYPE声明中包含的公共标识符必须引用附录A AppendixA中的3中DTD的一种,每种DTD有各自的正式公共标识符。系统标识符可以改变以适应本地系统。下面是一个最小的XHTML文档示例:Virtual LibraryMoved to vlib.org.注意在这个例子中含有XML声明。 XML声明并不是在所有的XML文档中都是必须的。XHTML被强烈建议使用XML声明。当字符编码不是缺省的UTF-8或UTF-6时,这样的声明是必须的。3.1.2 在XHTML中使用其它名址空间在XHTML名址空间中可以用XMLNAMES使用其它XML名址空间,尽管这样文档会不是严格遵循XHT
15、ML的文档。W3C将在以后致力为多名址空间指定一致性的问题。下面的例子说明XHTML1.0和MathML推荐标准联合使用的方法。A Math ExampleThe following is MathML markup: 3 x 下面的例子说明XHTML1.0和其它XML名址空间联合使用的方法:Cheaper by the Dozen1568491379This is also available online.3.2 用户代理程序一致性一个遵从的用户代理程序必须遵照下面所有标准:为和XML1.0推荐标准一致 XML,用户代理程序必须分析和评估XHTML文档的编排良好性。如果用户代理程序宣称自己
16、是一个带验证能力的用户代理,它还必须依照XML安文档引用的DTD来验证文档。 当用户代理程序宣称支持本规范书定义的功能facilities时,它必须按功能的定义来支持。 当用户代理程序按一般的XML来处理XHTML文档时,它应当只将ID类型的属性(如多数XHTML元素的ID属性)识别成片段标识符。 如果用户代理程序遇到一个它不识别的元素,它必须显示元素的内容。 如果用户代理程序遇到一个它不识别的属性,它必须忽略整个属性的定义(即属性及其值)。如果用户代理程序遇到一个它不识别的属性值,它必须使用使用属性的缺省值。 如果它遇到一个实体引用(不是预定义了的实体),用户代理程序没有处理过其声明(如果声
17、明是在用户代理程序没有读到的外部子集中就会发生),实体引用应该以字符显示(以&符号开始,以半冒号结束),以编排成实体引用。 在显示内容时,用户代理程序如果遇到它不认识的字符或认识但不能显示字符实体引用,它应该以显眼的方式告诉用户发生了异常显示。 下面的字符在 XML中被定义为 空白(whitespace)字符: 空格 ( ) Tab ( ) 回车 ( ) 换行 ( ) XML处理程序将不同系统的行结束码规格化为单个换行附传递给应用。因此XHTML还必须将下列字符看成空白字符: 换页 () 0宽度空格 ()
18、对 xml:space 属性被设为”保留”的元素,用户代理程序必须保持所有空白字符的原样 (引导和结尾处空白字符除外,这些字符应该被删除). 否则,按下列规则处理空白字符: 所有块元素周围的空白字符应该被删除。 注释全部去除,不影响空白符的处理。注释两旁的一个空白符被处理为两个空白符引导和结尾处空白字符应该被删除块元素内的换行字符必须转换成空格 (xml:space 属性被设为”保留”时例外)。 一串连续的空白字符必须减少为单个空格 (xml:space 属性被设为”保留”时例外)。 在显示时,用户代理程序应该以恰当的方式显示文档内容为文档内容书写的语言。在主要是拉丁书写体的语言中,ASCII
19、空格典型的用来编码语法上的词的分界和印刷上的空白; 在和Nagari书写体相关的语言中 (如梵语,泰语等),语法上的边界可以用ZW空格字符编码,但是在显示输出时一般不用印刷上的空格表示; 用阿拉伯语形式书写体的语言,可以用空格字符编码印刷上的空白,单不能用ZW空格定界内部的文法分界(如,在英语看来是一个词的kitAbuhum = kitAbu-hum = book them = their book ,在阿拉伯语中编码为几个词); 中文书写体习惯则一般既不用这种方式编码分界也不使用印刷上的空白。 属性的值中的空白符的处理方式按照XML。4. 与HTML 4的区别因为XHTML是XML的一个应用
20、,一些在基于SGML的HTML 4中完全合法的习惯在XHTML中必须改变。4.1 文档必须是编排良好的编排良好性Well-formedness是XML引入的一个新概念。从本质上说,这意味着元素必须有结束标签,或者必须以特殊方式书写(在下面说明)。元素必须嵌套,尽管SGML规定层叠非法,但现有的浏览器普遍允许层叠。正确:嵌套元素。here is an emphasized paragraph.不正确:层叠元素。here is an emphasized paragraph.4.2 元素和属性名必须小写对所有HTML元素和属性名,XHTML 文档必须使用小写。 因为XML是大小写敏感的,所以这个差
21、别是必须的。如 和 是不同的标签。4.3 对非空元素,必须使用结束标签在基于 SGML的 HTML 4 中,一些隐含结束意义的元素允许忽略结束标签。而在基于XML的XHTML中,这种忽略不被允许。除了在DTD中被声明为空的元素,所有元素必须有结束标签。正确:结束了的元素。here is a paragraph.here is another paragraph.不正确:未结束元素。here is a paragraph.here is another paragraph.4.4 属性值必须在引号中所有的属性必须用引号,即使是数字。正确:在引号中的属性值不正确:不在引号中的属性值。4.5 属性最
22、小化XML 不支持属性最小化. 属性值对必须写全。象compact,checked这样的属性名不能不指定属性值而在元素中出现。正确:没有最小化的属性不正确:最小化属性4.6 空元素空元素要么必须有结束标签,要么起始标签以/结束. 例如,或. 请参看HTML兼容性指导 HTML Compatibility Guidelines 中的信息,以保证向后兼容HTML 4用户代理程序正确:结束的空元素错误:未结束的空标签4.7 属性值中的空白字符处理对属性值,用户代理程序将删去引导和后序空白符,将一个或多个空白符(包括换行)转换成单个字符间空间(在西方书写体中是一个ASCII空格) See Sectio
23、n 3.3.3 of XML。4.8 Script and Style 元素在XHTML中,script和style元素声明为#PCDATA内容形式,因此, 和 & 被看作是标识的开始,<和& 这样的实体被XML处理程序看作为实体引用而分别被认为是 和 & . 将script和style元素的内容包裹在CDATA记号部分中避免了这些实体的扩张。CDATA 部分被 XML 处理程序识别,是文档对象模型中一个结点。请参看1.3节Section 1.3的DOM LEVEL 1推荐标准DOM。替代的方式是使用外部script和style文档。4.9 SGML 禁止SGML 给作者的DTD可以
24、指定在一个元素内部禁止出现的元素。这样的禁止在XML中是不可能的。例如,严格的 HTML 4 DTD 禁止任何深度的a元素对另一a元素的嵌套。在XML中无法写出这样的禁止。尽管这些禁止不能在DTD中定义,一些元素不应该被嵌套。在标准化的附录B AppendixB中是这些元素的汇总。4.10 具有 id 和 name 属性的元素HTML 4 定义了name属性的元素有 a,applet,form,frame,iframe,img,and map. HTML 4还引入了 id 属性. 这两个属性都是被设计作为片段标识符。在XML中,片段标识符是ID类型,每个元素只能有一个ID类型的属性。因此,在X
25、HTML1.0中,id属性被定义为ID类型。为保证XHTML1.0文档是结构良好的XML文档,在定义一个片段标识符时,XHTML文档必须使用id属性,即使是对那些以前用name属性的元素。请参看 HTML Compatibility Guidelines 的信息,确保XHTML文档以text/html媒体类型使用时,这些”锚”能向后兼容。 注意,在XHTML 1.0中,name 属性不被正式支持,在以后的XHTML版本中将被删除。5. 兼容性问题尽管XHTML不必和已有的用户代理程序兼容,在操作上它很容易实现。创建兼容文档的指导方针在AppendixC中。5.1 Internet 媒体类型在本
26、推荐标准发布时,基于XML的应用的通用MIME标签问题还未被解决。虽然如此,依照Appendix C中指导方针的XHTML文档可以标为text/html媒体类型,因为这被大多数浏览器兼容。本文档对XHTML文档的其它MIME标签不做推荐。6. 未来趋势XHTML 1.0 提供了一类文档类型的基础,此类文档将扩展xhtml和包含XHTML子集。为了广泛的支持新设备和新应用,定义模块和指定联合这些模块的机制。 这个机制将用统一的方式定义新模块,以扩展和子集XHTML。6.1 模块化 HTML因为XHTML的应用从传统的桌面用户代理程序转移到其它平台,显然,在所有的平台上不一定要用到所有的XHTML元素。 例如,手上设备或蜂窝电话可以只支持XHTML元
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1