W3C规格阅读指南_第1页
W3C规格阅读指南_第2页
W3C规格阅读指南_第3页
W3C规格阅读指南_第4页
W3C规格阅读指南_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、W3C规格阅读指南J. David Eisenberg, 2001年9月28日原文网址: HYPERLINK /article/readspec /article/readspecWeb上的所有技术的规格都由万维网联盟(W3C)负责管理。作为一名前端工程师的您,可能访问过该联盟的网站(HYPERLINK )来寻找XHTML的某个问题的答案,或是想要了解诸如XSL格式化对象(XSL Formatting Objects)或可伸缩矢量图形(Scalable Vector Graphics)这样的新技术。就这样,您接触到了规格,但几乎立刻被吓得落荒而逃。您一定会觉得,“什么嘛,这完全不是给人读的。”

2、实际上,它是给人读的,前提是您预先了解一些关键信息。规格不是用户手册圣经写出来不是为了给人读,而是为了给人解的。 佚名如果您想要寻找某个问题的答案,实际上就是在寻找的是一本用户手册,或一篇用户指南;换言之,您想要了解的是该技术的用法。然而,这却并不符合W3C规格的创作意图。所谓“规格”,它意在告知负责实现该技术的程序员,有哪些特性是必须提供的,以及它们应该如何实现。这就是您的爱车的用户手册和维修手册之间的差异。用户手册只会告诉您更换雨刷片时的做法。如果您翻开维修手册,上面只会列出雨刷片的详细尺寸,还有将它们彼此连接的部件票意图,您只能利用这样的信息来拼凑出如何更换雨刷片的知识。如果您采用的是最

3、新技术,可能还根本没有任何用户参考资料,唯一能找到的就是规格。在这种情况下,学习如何阅读规格就成了必要的工作,而非可有可无了。规格的结构正如维修手册中可能会列出一篇指南,来说明各种缩写和图表中采用的图例的意义一样,大多数W3C规格都配有一节来对文档本身进行解释工作。例如, HYPERLINK /TR/html401/about.html HTML和 HYPERLINK /TR/REC-CSS2/about.html CSS规格的第一节就都提供了相当详尽的信息,来说明相应规格的组织方式,以及如何阅读。智者必识我讨厌定义。Benjamin Disraeli维修手册在语言风格上注重精确性,这一点和语

4、调轻松、行文随意的谈话作品相当不同。同样地,W3C规格的语言风格也仿佛日本歌舞伎剧那样一丝不苟。以下是一些您在阅读规格时会常常遇到的字词。规范性如果您看到“本节是规范性的(normative)”,则指出该节的内容会指定实现者应该遵循的细节。而提示性(informative)章节则不然,它们通常是一些示例和解释。用户代理这个有点儿故弄玄虚的术语,意思其实是指这样的程序:用户需要凭借它才能和某项技术打上交道。对于HTML而言,它的用户代理就是浏览器。对于可缩放矢量图形而言,它的用户代理可能是一个查看器,如 HYPERLINK /batik/ Batik;又或是一个插件,如 HYPERLINK /s

5、vg/ Adobe SVG Viewer。RFCRequest For Comment的缩写,意思是该文档代表某个互联网标准(草案)。助动词如果某个规格中写道,它遵循 HYPERLINK /rfc/rfc2119.txt RFC2119 ,那么接下来文中出现的特定助动词就会带有正式的对应含义。 必须(must)的意义是:某定义是绝对要求的; 绝不(must not)的意义是:某定义是绝对禁止的; 应该(should)的意义是:某个特性可以实现也可以不实现,但如果不实现的话,最好有个很好的理由; 不应该(should not)的意义是:如果确实需要在实现里包括某个特性,则最好有个很好的理由。略读

6、亲爱的Martha阿姨:谢谢您那本讲大象的书。它告诉我关于大象的知识,比我想知道的还要多。一个孩子的感谢信如果您发现自己在读的文字没有明显的标记,只有大量的冗词,读起来既像法律术语,又像是计算机科学讲座,或两者兼似的话,也许仅仅粗粗看一眼就够了。像在XSL:FO规格里如下面一节的文字,就是很可以跳过的。(事实上,在那篇规格里,第六章之前的内容都不是给用户这个级别的人读的。)4.2.5 堆叠约束本节定义了块堆叠约束和涉及领域的内联堆叠约束。它们被定义为有序关系,也就是说,如果A和B间存在一个堆叠约束,并不一定意味着嘿,略读时间到!另一方面,有时您却应该放慢阅读速度。当您看到一张示意图时,请看看它

7、的题注和标注。这些通常都会指向重要信息。当您看到一节中包含有一个或数个示例时,请放慢速度,仔细阅读。名字空间在XML的语境下,名字空间是可以让您在同一文档中混合使用不同标记的机制。例如,如果我想把数学标记语言(Math Markup Language)放置到HTML文档里面,就必须在我文档的最顶层元素里加一些额外的声明,我的做法是用ml为前缀来标记数学元素:Here is Einsteins famous equation: e = m c 2 with which we all are familiar.最好的办法就是照用您在示例文档所见的任何名字空间前缀。在大多数情况下,如果您遇到一大篇讨

8、论,且主题是关于某项XML技术多么有“名字空间感知”,那您应该可以直接跳过这篇讨论也没问题。 原作者的意思是,如果某项技术仅在某个名字空间的语境中有效,那末除非需要专门了解该名字空间包含的元素,否则没有必要细看,因为别处不适用。学习阅读BNFBNF是Backus Naur Form或Backus Normal Form的缩写。它是一种用来表示计算机语言语法的紧凑形式,它实际上无处不在。不同的规格使用不同风格的BNF,但它们的共同之处是都把大段的自然语言描述变换成了符号形式。下面是一个说明了三明治成分的例子:三明治由以下成分构成:一块面包下切片,还有芥茉或蛋黄酱;生菜可放可不放;西红柿切片可放可

9、不放;二至四块红肠、腊肠或火腿以任意方式组合的切片;一块或多块芝士切片;还有一块面包上切片。其变换形式为:三明治 := 面包下切片 芥茉 | 蛋黄酱 生菜? 西红柿? 红肠 | 腊肠 | 火腿 2,4 芝士+ 面包上切片定义的各成分按顺序列出,以空格分隔。各项目以方括号分组,组内选择以竖线分隔。如果项目后面跟着一个问号,意思是“一个或没有”;如果后面跟着一个加号,意思是“一个或多个”;如果后面跟着一个星号,意思是“零个或多个”;如果后面跟着一个里面有数字的花括号,数字就代表着项目允许出现次数的上下限。小括号,或更多的方括号,用来给更复杂的定义中的项目分组。有时候,也会用尖括号括起某项目表示这是

10、一个通用项目(如“颜色”),或用引号括起某项目表示这是一个守恒项目。学习阅读文档类型定义Grolier在线百科全书是Jeopardy智力大挑战游戏上所有问题和答案的权威来源。引自某电视游戏提示您真的了解吗?那些放入文档中的声明,是告知浏览器正在使用的HTML或XHTML版本用的。这些声明指向一个文档类型定义,简称DTD,它是一个用来定义元素的何种组合为合法的文档。虽然学习阅读DTD是一项困难的任务,但也不是不可能完成的。而且,这种学习是值得的,因为DTD是判定特定的标记语言是否在语法上具备正确性的最终权威依据。要完整地解释如何阅读DTD,这远远超出了本文的范围。欲知详情,请参阅 HYPERLI

11、NK Elizabeth Castro的HYPERLINK /exec/obidos/ASIN/0201710986/jeffreyzeldmanprA/XML for the World Wide Web可视化快速入门(XML for the World Wide Web Visual Quickstart Guide),或Erik Ray的HYPERLINK /exec/obidos/ASIN/0596000464/jeffreyzeldmanprA/XML入门(Learning XML)。下面仅举一个您可能会在DTD中看到的简单示例: 下面用自然语言来表述一下以上这段描述是什么意思:字体

12、样式元素包括、和。内联元素由平凡文本和字体样式元素组成。一个可以以任意顺序包含一个或多个或内联元素。有一个可选的align属性,其值可以是left、right或center。忘掉IDL,拥抱绑定有一些XML技术,如SVG和SMIL,允许用户编写程序来对文档实施动态控制,正如JavaScript允许您控制HTML文档一样。其规格必然含有描述如何脚本来操作文档对象模型(Document Object Model)的章节。这些章节会使用接口定义语言(Interface Definition Language),简称IDL,来给出接口。IDL是一种通用记法,它用于描述用户代理如何访问编程环境的各种信息

13、。IDL不是一种编程语言,它只是一种记法,是用来描述这些接口的一种紧凑形式。尽管这种记法信息量大,但它几乎肯定不是您要找的东西。什么才是您要找的东西呢?这取决于您选择的程序设计语言。您要找的可能是Java绑定(bindings),也可能是ECMAscript绑定。绑定是一个故弄玄虚的术语,它其实就是指您使用的脚本所能够使用的一切对象,属性和方法。说到ECMAScript,它是欧洲计算机制造商协会(European Computer Manufacturers Association)标准版本JavaScript的意思。如果您使用的是其他语言,比如Perl或Python,那就必须从像 HYPER

14、LINK Perl综合档案网(Comprehensive Perl Archive Network)或 HYPERLINK /sigs/xml-sig/ Python XML特别兴趣小组(Python XML Special Interest Group)这样的地方去寻找相应的库了。小结建立明确的意识:规格是写给实现者,而非最终用户看的;许多规格都包含一个专门章节,以说明其组织方式,以及应该如何阅读;熟知规格专用词汇;务请记住,您不必阅读逐字阅读规格。学会跳读,集中阅读有意义的部分;跳过名字空间相关讨论章节;学习阅读BNF,很多地方都在使用它;学会阅读DTD,并从中找到语法问题的答案;如果某项技术涉及可编程脚本,该信息就包含在绑定中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论