XML和第二代网_互动科普

使用社交账号登录

购买价格:
付款方式:

互动科普

主页 > 科普纵览 > 信息 • 能源

XML和第二代网

admin  发表于 2017年11月21日

XML和第二代网

Jon Bosak,Tim Bray

XML和第二代网 1.png

超文本与全球因特网的结合引发了一场革命,而一种新成分XML为完成这场革命做好了准备。

给人们一些提示,他们就能据此推彼。人们在浏览页而时如果看到几个大字后跟着成块的小字就知道这是一篇杂志文章的篇首,看到一张杂货清单就明白是购物指南,看到一排排的数字就知道是他们的银行帐户情况。

当然,计算机并非如此聪敏,它们需要有人确切地说明事物的定义、相互联系以及如何处理。可扩展标识语言(Extensible Markup language,缩写为XML),是一门新语言,它用来使信息能进行自我描述。计算机通信式的这个变化听似简单,然而它有潜力把基于信息传输的因特网扩展到其它许多类型的人类活动上。实际上,自从1998年初XML由世界广域网组织(World Wide Web Consortitum,通常称W3C)设计完成以来,这个标准便如野火般蔓延科学和工业领域,涉及范围从制造业到药业。

这种狂热反应源自一个希望,那就是XML将解决一些网络大问题众所周知因特网是一个经常如爬虫般缓慢运行的光速网络,尽管几乎每种信息都可在网上在线获得,但要找到你所需要的信息却相当困难。

XML和第二代网 2.png

两个问题的出现在很大程度上都是因为网络主语言超文本标识语言(Hyperiext Markup Language,缩写为HTML)的本性所致。尽管HTML是最成功的电子出版语言,但它仍然很粗浅;事实上它仅描述了网络浏览器如何管理页而上的文本图像和按钮。HTML注重于表面这使得它相对易学,但也存在着问题。

问题之一是创建一个有多种功能的网址——而不仅仅是起着向请求者发送文件的传真机的作用——是很困难的。个人和公司都需要能够接受用户订单传送病历,甚至管理远隔半个世界的工厂和科学设备的网址。HTML却从不支持这些业务。

因此尽管你的医生可以用网络浏览器提取你的用药反应记录,他却不能将这些记录以电子邮件形式发送给一个专家,也不可能指望这个专家能将这些记录直接存入她医院里的数据摩。专家的计算机将对这些信息束手无策。对它来说这些信息同<FDtthlNh</HI><BOLD>lk-dlhblah</BOID>一样莫名其妙。正如编程奇才Brian Kernighan曾提到的“所见即所得”的问题就在于你所见到的就是你得到的全部东西。

上述例子中那些尖括弧内的标记被称为标签。HTML中没有用于作药物反应记录的标签,这揭示了它的另一个局限性:不灵活。加入一个新标签是一个冗长繁琐的过程,它所耗费的时间长得让人无法忍受可是不仅仅是交换病历,每种应用都需要它们自己的标签。

今天的在线书库、邮购目录和其它交互性网址的缓慢步调也是如此。如果改变你的订货的数量或发货方式,那么为了检视全部数据中的这一小部分改变了的数据,你都得请求一个过负荷的远端服务器发给你一张全新页面、图像及所有信息,其间你功能强大的计算机还得闲置等候,因为它只知道<HI>S和<BOLD>S而不是价格和发货方式。网上搜索的效果也同样令人不满,由于没办法给价格之类的事物作上标记,因此想在搜索中使用价格信息是显然不可能的。

XML和第二代网 3.png

旧事物和新事物

从理论上讲解决方法很简单:使用能说明信息本质而不是表象的标签。譬如标明一份衬衫订单的各部分,并非是标注字、节、行、列——这正是HTMI所提供的——而是价格、尺寸、数量和颜色这样程序就能够认出这个文件是客户的订单,并按文件要求处理以一种方式显示或以另一种方式显示,或是将它放入文件存储系统或是让一件新衬衫明天显示给你看。

作为一个有12名成员的W3C工作组中的成员,我们在1996年就开始构思对策,我们的观点很有效但并非全新.若干年代来,打字员为指导排字工操作,把注释潦草地写到原稿上这种“标识”一直任其自然地发展。到1986年当时国际标准化组织(ISO)在数十年工作后终于审批通过了一个供创建新标识语言的系统。

这种被称为标准抽象标识语言(Standard Generalzed Markup Language,SGML)的语言是用于描述语言的——即一种无语言——已在许多大型出版应用中证实有用。其实,HTML就是用SGML定义的。SGML的唯一问题是它太抽象了——在一个对每个字节都得精打细算的年代,这种语言充满了为减少击键次数而进行的巧妙设计。它太复杂以至于网络浏览器难于应付。

我们的工作组把SGML中的冗余成分去掉,让它成为一种更简练易懂的元语言,这样就创建了XML。XML包含众多法则。任何人都可遵循这些法则从头创建出一种标识语言。这些法则使得一种单独的通常被称为分析程序的小型程序能处理所有新语言。

再来看看想把你的病历以E-Mail形式发给专家的那位医生吧。如果医疗行业用XML开发出一种能将病历编码的标识语言——实际上几个开发组已在着手这方面的工作——这样你的医生的E-Mail就可包含<病人><名字>blah blah</药名字><药物反应>blah blah blah </药物反应></病人>,而给任何计算机编程以识别这种标准医用符号并将重要数据加入数据库就变得很简单了。

正如HTML,为每个计算机用户阅读因特网文件开辟了道路,XML也使得创造一种所有系统均可读写的交流语言成为可能,尽管互不兼容计算机系统间仍存在鸿沟。与大多数计算机数据格式不同XML标识更易让人理解,因为它所包含的仅是普通文本而已。

XML的这种一体化功能源自一些经过精选的规则,其一就是标签总是成对出现,它们如括号一样总是环绕在使用括号的文字周围:而且它们又和引号相似,可相互多层次内嵌套。

嵌套规则采用计算机科学中所谓的树结构,自动使每个XML文件变得相当简单。同系统树一样,文件文本的每个图形和字节代表其它某个元素的父、子或兄弟等,相互间关系明确。虽然树不能代表每种信息,但它能代表我们需要使计算机了解的大多数信息,并且它对于程序员来说简直是惊人的方便。如果你的银行报表以树的形式表示,那么写一小段软件以重新安排交易或显示已兑现支票简直是轻而易举的事。

XML的一体化功能的另一个来源是它所依赖的一个新标准,它被称为通用计算机代码,是一个支持世界上所有主要语言的混合文本的符号编码系统。在HTML和大多数文字处理语言中,一个文件通常用一种语言,它可以是英语、日语或阿拉伯语——如果你的软件不能识别一种语言的符号,你就不能使用以这种语言编写的文件。情况还可能更糟:由于互不兼容的编码,在台湾制作使用的软件常常不能读取大陆的汉语文字,而能阅读XML的软件可以处理任何符号集的任何组合。因此,XML使得信息不仅能在不同计算机系统间交换。还能跨国、跨文化地界交换。

世界性等待的结束

随着XML的普及。网络显然将变得更为灵敏。目前,无论是功能强大的桌面计算机,或是小巧的袖珍型设计器,这些连接到网络上的计算设备所能做的仅限于接收表格,填好后与网络服务器来回交换直至工作完成。而用XML附加上的结构和语义信息却允许这些设设备立刻处理大量工作,这不仅将大量减轻网络服务器的负担而且能极大降低网络通信量。

要想弄清楚为什么,请想象一下到一个在线旅行社询问七月四日从伦敦飞往纽约的所有航班。你可能会收到一份比你的显示器屏幕所能显示的长几倍的目录。你可以通过确定起飞时间价格或航空公司来缩减目录,但这样你就不得不发送一个请求穿越因特网到旅行社,并等待回音。但是,如果这份长长的航班目录是用XML发送的,旅行社便可发回一个小型爪哇程序连带航班记录,你可以在极短时间内用此程序整理记录并在窗口中显示,而不用像以前那样需要服务器参与工作。把这种方法运用于百万计的网络用户中,全球效率的改进将颇为可观。

当大多数网络信息用行业专用的XML标签标明时,要准确找到你所需要的信息将变得更简单。今天你要是到因特网上搜寻“证券经纪人工作”,与之相关的广告将如雪片般飞来,但可能却几乎没有什么招聘信息——它们多数藏在报刊网址的分类广告中,使得搜索引擎鞭长莫及。目前美国报业联合会正在创建一种基于XML的标识语言,它用于分类广告,可望使此类搜索更为有效。

即便如此也仅是一个中间步骤,而已很早以前图书馆管理学专家就曾指出,尽快找到信息的途径并非查看信息本身,而是查阅更小更密集的能指引人到有用资源的数据集合,因此图书馆卡片目录便应运而生。这种关于信息的信息被称为元数据。

从一开始建立一个供元数据使用的同类标准就是XML方案的一部分。今年二月完成的资源描述框架(RDF)为网络数据做的工作就如同目录卡为图书馆书籍所做的一样。一旦在网络采用,RDF元数据对信息的检索将比目前要快得多、精确得多。由于网络没有库管理程序而每个网络管理者都希望自己的信息先于其他信息被查询到,因此我们期待当RDF的效力充分发挥时,它将成功获得特别惊人的因特网增长率。

当然,要找到信息除搜索外还有其他方式。网络毕竟是一个“超文本”,它的数十亿网页通过超链接连接起来——你点击的那些划线单词可使你在网页间迅速切换。同样超链接在XML支持可发挥更大作用。今年底W3C将制订一个名叫XLink的供基于XML的超文本使用的标准。此标准可支持你从多目标目录中选择其它种类的超链接可在你点击的地方直接插入文本或图像,而不再迫使你关闭网页。

或许最有用的是XLink将使网页制作者使用指向一些核心数据库中的条目的非直接链接而不是链接页面本身。当页面地址变更时,制作者只需修改一个数据库记录便能更新所有指向它的链接。这有助于消除表示链接已被破坏的常见错误“404文件未找到”。

更高效的处理过程、更精确的搜索与更灵活的链接相结合将革新网络结构,并使得访问信息的全新途径成为可能。用户们会发现这种新网络比现在的网络更快速、更高效、更有用。

需要一些汇编

当然并不是那么简单。XML确实允许任何人设计一种特定的新型语言。然而设计良好的语言并非是可以轻松征服的挑战设计仅是个开端;对于其他人和计算机来说,你的标签的意义并不清晰,除非你写上一些枯燥的注释来解释它们,或是写一些软件去驱动计算机。

稍作思考后便知晓其中原因。如果为了教会计算机处理购物订单,只须用<购物一订单>标签来标记它即可,那么我们便不会需要XML了我们甚至不需要程序员——计算机会有足够的聪明照料好它们自身。

XML一并没有这样神奇,但仍然很有效,它制定了一些基本规则。这些规则清除了一层程序细节使兴趣相近的人能专注于困难部分——在如何表示他们通常交换的信息上达成共识。这不是一个容易解决的问题,也不是一个新问题。

人们将制订出这种协议,因为互不兼容计算机系统的猛增几乎在人类活动的每个领域中都造成了延时、多余花销和混乱的恶果。人们希望不必使用相同的计算机就能共享想法或做生意。为使这些成为可能特定活动专用的交换语言经历了一个漫长的发展过程。实际上,大量“ML”结尾的新缩写词证明了这种由XML激发的在科学、商业及学术方法上体现出来的独创性。

在设计出一门新语言之前设计者们必须三件事上达成一致允许使用何种标签,标签元素怎样相互嵌套及怎样处理它们前两件——语言的词汇和构——通常编写进文件类型定义,即DTD中,XML标准不会强迫语言设计者使用DTD,但大多数新语言都可能具有DTD,因为它使得程序员在编写能理解标识并用它作出巧妙处理的软件时要容易得多。

程序员同样需要一系列用人类语言描述所有标签意义的指导原则,例如HTML有DTD,但也有数页描述性注释,程序员在写浏览程序和其他网络软件时可求助于它们。

格式问题

对用户来说重要的是程序能做什么,而不是定义描述些什么。很多情况下人们需要可把XML编码的信息显示给读者的软件,但是XML标签没有提供关于信息应如何在屏幕上或纸上显示的固有线索。

这对于那些喜好“一日写成哪里都能出版”的出版者们来说实际上是个优点——精选出要出版的内容,然后源源不断地变成包括印刷体电子形式的无数种格式,而XML通过给内容贴上标签来描述其意义,并且与显示媒体无关使出版者们实现了这个愿望。出版者可使用组织或“格式表”的规则来给不同的设备进行自动罩格式化作业,目前这个正处于发展阶段的供XML格式表用的标准被称为“可扩展的格式表语言”,或称作XSL。

最新版本的几个网络浏览器可以阅读XML文件。取出相应的格式表并用它分类和格式化屏幕上的信息读者可能永不知道他看见的是XML而不是HTML,他只知道基于XML的网站运行更快速并更易使用。

视力上有残疾的人从这种出版方法中获得一个免费好处:格式表将使他们能把XML译为盲文或可听的语音。其他人也可获得好处:常往返于两地的人若想在他们的汽车里实现网上冲浪,那么他也会发现使网页发出朗读声是轻而易举的事。

尽管网络已成为科学和学术的福音,但是是商业(或确切地说是对未来盈利的期盼)刺激了它的火爆增长。近来同上零售的狂潮备受关注,但在线的“门对门”贸易也发展得少与之一样快。例如制造过程中货物的流通极需自动化操作,然而依赖复杂而直接的程序到程序间相互作用的方案实际应用中效果不佳,因为它们依靠的是一个并不存在的处理标准。

若干世纪以来人们用交换标准文件的方式成功地做着交易:购货清单、发票、运货清单、收据等等。商业中使用这些文件是因为不需要交易人了解相互的内部工作流程。每个文件显示的正好是收到文件的人想要知道的东西,再没有多余的话。文件交换很可能也是做在线贸易的正确途径,但这项工作却不是初创建HTML的本意。

相反,XML则被设计用作文件交换。现在越来越清楚,普遍的电子贸易将很大程度上依赖于协议的流动,这些协议是用在因特网间传递的数以百万计的文件来表达的。

因此,对用户来说具有XML功能的网络更快速、更友好,也是做交易的更佳地点。另一方面,网络设计者们将发现客户越来越苛求,将需要大批程序员开发新的XML语言来满足需要。尽管那些自学成才的网络黑客的末日还未到来,但他们已面临生存威胁。未来的网络设计者不仅要精通文字和图像的制作,而且也要精通DTD、数据树、超链接结构、数据和格式表的相互依存的多层次系统结构——为第二代网络设计的更为坚实的基础结构。

【向俊/译;郭凯声/校】

全部评论

你的评论