XML--INTERNET的“世界语”
· 天行者·Yesky
虽然目前几乎每种信息都可通过网络获取,但要找到你真正需求的信息却相当困难。如今的网页仅仅起着一台向请求者发送文件的传真机的作用,“所见即所得”的问题就在于你所见到的就是你得到的全部东西。例如,由于没办法给领带颜色之类的元素作上标记,因此想通过搜索引擎获取某种颜色的领带列表显然不可能。往往我们碰到的,是你想通过雅虎搜索一篇名叫“智慧之路”的文章,而它回给你一个“智慧之路书店”的条目。从理论上处理上述问题的方法很简单:使用能说明信息本质而不是表象的标签。譬如,标明一份汽车的订单,不是按HTML所提供的字、节、行、列来标注,而是依据某种准绳,按价格、尺寸、数量和颜色等性质来定义。这样,程序就能够认出这个文件是客户的订单,并可按不同用户的不同要求分别处理:以台式PC方式显示或以手机方式显示,或是将它放入数据库系统,或是显示一幅样品图片……
可扩展标识言语XML(Extensible Markup language)就是由这样一系列法则组成,它实质上是一种定义言语——任何人、任何行业都可遵照这些法则,定义各种标识来描述信息中的所有元素,然后通过一种被称为分析程序的小型程序进行处理,使信息能“自我描述”。
计算机通信方式的这个变化看似简单,然而它的意义不只仅是改变了HTML僵化的固定标识集,它的出现,从基本上改变了旧式的信息结构方式,创造了一种让所有计算机系统均可进行“智能”交流的言语,使得基于信息传输的互联网在信息检索和获取的方面发生了一种反动性变革,为整个互联网的智能化奠定了基础。自从1998年初XML由W3C(World Wide Web Consortium,世界广域网组织)设计完成以来,这个标准便如野火般漫延至科学和工业领域。
这种狂热源自互联网所带来的一体化愿望。一些经过精选的规则使XML能够实现上述的一体化功用:其一就是标签总是成对出现,其功用就像我们通常使用的括号一样,同时它们又具有引号的功用,可多层次嵌套——嵌套规则采用计算机中常见的树结构,对于程序员来说几乎是惊人的方便:例如,你的报表以树的方式表示,那么写一小段软件来改变数据或显示最新结果是非常轻而易举的事。其二是它所依赖的一个新标准——通用计算机代码,这是一个支持世界上所有次要言语的混合文本符号编码系统:在HTML中,一个文件通常用一种言语,它可以是中文、英文、日文、阿拉伯文其中的任一种,假如你的软件碰巧不能识别这种言语符号,你就不能使用它,而用来阅读按XML规则编写的网页的软件则可以处理各种言语的任意组合,因此,XML使得信息不但能在不同的计算机系统间交换,还能跨国、跨文化地界交换。
以前,连接到网络的计算机和网络所能做的交互仅限于接收表格——填好后与网络服务器来回交换直至任务完成,而XML由于通过给内容贴上标签来描述其意义,与显示介质无关,所以,可使用一种名叫“格式表”的规则来给不同的设备进行自动重格式化任务——这个正处于发展阶段的、供XML格式表用的标准被称为XSL(可扩展的格式表言语):视力上有残疾的人使用格式表,能把XML网页译为盲文或可听的言语;若想在汽车里实现网上冲浪,那么使XML页面发出朗读声是轻而易举的事;至于要做到在进行买卖时,每个你所需求的文件显示的正好是你想要的东西,更是轻而易举——XML附加上的结构和语义信息,允许计算机设备立刻处理大量任务,大大减轻了网络服务器的负担,极大地降低网络通信量:当大多数网络信息用行业公用的XML标签标明时,要精确找到你所需求的信息将变得十分简单——在这里,使用XML就好像为互联网作了一个图书馆卡片目录。1999年2月完成的RDF(资源描述框架)使数十亿通过超链接连接起来网页可以在XML的支持下发挥更大作用。W3C由此制定一个基于XML、称为XLink的超文本链接标准:此标准支持多目标目录选择,能够在点击处直接插入其它网页的相关文本或图像,而不须关闭网页。然而,XLink最大的用途还在于它能将网页的使用指向一些核心数据库中的条目,而非页面本身。当页面地址变更时,制造者只需修正数据库记录便能更新所有指向它的链接,这有助于消弭表示链接已被破坏的常见错误——“404文件未找到”。
XML为科学家们交流理论、计算及实验结果提供了一条特别便利的途径:MathML(数学标识言语)支持数学家在网页中插入等式和几行简单文字,于是读者就可以把这些表达式直接插入代数软件供计算和画图用;CML(化学标识言语)和AML(天文学标识言语)能协助研讨人员检索大量杂志引文,并迅速筛选到恰好适用于他们研讨课题的论文,例如,天文学家可以输入一个星系在天空中的坐标,以获得关于此天体的图像、研讨论文及仪器数据的目录……XML还将有助于进行实验及分析实验数据:通过AIML(天文仪器标识言语),它支持全世界的天文学家通过浏览器控制天空中的望远镜,甚至可能控制卫星;遗传学家运用BSML(生物序列标识言语)来交流和处理因基因图谱绘制和基因序列分析工程产生的信息洪流,使研讨者能轻易搜索巨大的遗传密码数据库,并把最终片段显示成有意义的图谱而不是芜杂无章的字母序列……
在设计一门新言语之前,设计者们必须在三件事上达成分歧:允许使用何种标签,标签元素怎样互相嵌套以及怎样处理。言语的词汇和结构——通常编写进DTD(文件类型定义)。XML标准不强迫言语设计者使用DTD,但大多数基于XML开发的新言语都带有DTD——它使程序员较易编写出能理解标识并对它作出巧妙处理的软件。所以,未来的网络设计者不只要通晓文字和图像的制造,还要通晓DTD、数据树、超链接结构、元数据和格式表的互相依存的多层次系统结构——为第二代网络设计的更为坚实的基础结构。