XML——Internet的“世界语” 天行者 2000年 第28期   尽管目前几乎每种信息都可通过网络获取,但要找到你真正需要的信息却相当困难。现在的网页仅仅起着一台向请求者发送文件的传真机的作用,“所见即所得”的问题就在于你所见到的就是你得到的全部东西。例如,由于没办法给领带颜色之类的元素作上标记,因此想通过搜索引擎获取某种颜色的领带列表显然不可能。往往我们碰到的,是你想通过雅虎搜索一篇名叫“智慧之路”的文章,而它回给你一个“智慧之路书店”的条目。从理论上解决上述问题的方法很简单:使用能说明信息本质而不是表象的标签。譬如,标明一份汽车的订单,不是按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、数据树、超链接结构、元数据和格式表的相互依存的多层次系统结构——为第二代网络设计的更为坚实的基础结构。