文 摘 从目前可实现的HTML链接功能为基点,介绍XML链接-XLink、XPointer的特点,分析了这些特点对索引技术发展的意义,最后提出XML链接应用于索引技术进一步探讨的方向。
关键词 XML XLink XPinter 索引
近年来出现的Internet热,主要应归功于Web。Internet提供了世界范围内网络互连和通信功能,Web则是一个环球信息资源库,由无数的HomePage(主页)组成,页面上的信息包罗万象,而且时时在增加,天天在更新,组织和编写Web页面的语言成为Internet的关键技术之一。
到目前为止,几乎所有的Web页面都是用HTML语言编写组织的。HTML简单易学,句法简明紧凑,加上其扩充的表格、帧、脚本等功能,使它得以在Web主页上大显身手。
1 HTML的链接
由於WWW的风行,大多数人都熟悉超文本链接的基本观念,亦即是“一个链接具有两个端点及一个方向,两个端点我们通常称为Anchor,链接起始的端点称为源,链接到达的端点为目标点。这样的链接可以从一个起点连到任何一个网络资源的目标点,这些目标点可能是一张图片,一部影片,一段声音,一个程序,一个HTML的文件或其中的某个元素等等”。例如:
<A HREF=“http://www.xml.com” TARGET=“-blank”>XML的发展过程</A>
其中,<A>是Anchor的标记,HREF属性指定一个目标点。TARGET属性指浏览器在新窗口中打开该目标点。
HTML之所以会成功,是因为它使用最简单的方式去使用超链接,而且使用者并不需要特别的编辑器便可制作网页。然而,过于简单的实现也导致了过于简化的功能。事实上,有很多其他的超文本链接功能是HTML没有办法做到的。
试想,如果在这个世界上每部电脑中的每个资料块都能够被识别、定址及链接,那将是多么令人振奋的事呢!随着XML的产生,XML链接规范中的XLink就是说明如何在网络上做到这点的规格文件。
2 XML的产生
随着Web应用的越来越广泛,HTML过于简单的弱点也越来越明显了。人们开始研究能改进或替代HTML的标记语言,XML(eXtensibleMarkup Language――可扩展标记语言)就应运而生了。
XML及HTML都是在SGML基础上发展起来的文档形式。SGML(StandardGeneralized Markup Language)是文字处理应用中表达数据一种标准的通用标记语言。1986年国际标准化组织发布了SGML标准的正式文本,使SGML成为描述各种电子文档结构及内容的国际标准。SGML的推出为创建结构化、可互换的电子文件提供了依据。
SGML过于复杂,而HTML过于简单,都难以满足现实应用,所以W3C(WorldWide Web Consortium,万维网联盟)创建了一组新的规范,以使得SGML的优点能够方便而直接地被用于Web的开发,结果就诞生了XML。
XML对SGML进行了精简,是SGML的一个子集。XML重新定义了SGML的某些内部数值和参数,省略了SGML中许多复杂而少用的部分,并在语言的易用性、易懂性及其对Web的适应性方面做了较大改进。因此,用户可以使用XML很容易地定义自己的数据类型,更容易地编写处理这种文件的程序。更为重要的是XML保存了所有的SGML结构化性能,提供Web上结构化信息交换机制。所有的XML文件仍然可以象其它SGML文件一样被应用程序解析和校验,仍然合乎SGML标准,并可使XML具有好的可扩充性,能以结构化的方式描述任意复杂的文档,支持类型检查等优点。
XML的诞生给万维网带来了新气象,将给Web带来SGML所具备的结构上的自由性――我们已经从电子商务和数据交换公司看到这方面的重大进展,正成为新一代万维网应用和规范的基石。
3 XML中的链接实现
XML的链接规范分为三个部分:XLink语言、XML Base和XPointer语言。其中,XLink语言用于建立资源之间的链接;XMLBase提供与HTML中BASE标记相似的功能,用于指定相对URL的绝对路径;XPointer用于定位XML文档中的片断。
3.1 什么是XLink呢?引用W3C XLink规范:“XML链接语言(XLink)就是允许在XML文档中插入元素以创建并描述资源之间的链接。”简言之,XLink是一种用XML元素向XML文档中加入链接的机制,它提供了比HTML更加灵活的链接机制,不仅支持HTML的单向链接,还支持多目的、多方向链接,它甚至还允许链接单独提出来存放在数据库中,或者是单独的文档中(链接的资源不只限于XML文档)。链接可以分为简单链接(SimpleLinks)和扩展链接(Extended Links)
3.1.1 简单链接 简单链接的功能相当于HTML中的<A>标记,但与HTML不同的是在XML中没有规定必须使用<A>之类的元素进行链接,它允许用户根据需要在同一文档中加入不同的具有自己独有属性的链接元素,这充分体现了XML的灵活性和可扩展性。例如:
<?xml version=“1.0”?>
<books xmlns=“http://www.library.com/books”
xmlns:xlink=“http://www.w3.org/1999/xlink”>
<book title=“Mastering XML”
xlink:type=“simple”
xlink:href=“http://www.library.com/books/MasteringXML”>
<description xlink:type=“simple”
xlink:href=“http://www.library.com/books/xml/MasteringXML.jpg”
xlink:actuate=“onLoad”xlink:show=“embed”>
This is a example.
</description>
</book>
</books>
上例是一个包含简单联接的完整的XML文档。首先,用xmlns引用XLink名称空间,以便该文档访问XLink属性和功能。接下来用到的xlink:type属性指定为简单类型。然后元素book使用xlink:href指定联接的URL,在这一点上,它就像HTML一样。xlink:show表示链接激活时的目标资源的显示环境。如果取值“embed”表示在当前窗口嵌入显示,“replace”表示在当前窗口显示目标资源,替换原来的显示内容,“new”表示新开窗口显示目标资源,xlink:actuate是指链接的激活时机,当值为“onLoad”时,如上例中所示,当初始文档装入时,就载入该资源。当指定为“onRequest”值时,意味着只有当单击该链接时,才会显示该资源。对于低宽带设置,这很方便,使得用户可以选择他想花功夫等待的资源。
3.1.2 扩展链接 扩展XLink联接可以在多个资源之间建立多向的链接。扩展XLink元素的构造,很大程度取决于用户,但通常包括一个资源集合和一个链接集合,链接集合元素表示资源集合元素间的链接。资源集合中可以包括本地资源和远程资源,如果资源是XLink元素的组成部分,该资源是本地资源;否则就是远程资源,如其他的XML文件或文本文件的其它元素。例如:
<Extendedl Link XMLns:xlink=“http://www.w3.org/1999/xlink”>
<Local
xlink:role=“category”xlink:title=“类别”
xlink:label=“category”>计算机
</Local>
<Remote>
xlink:href=“http://www.books.com/book.XML”
xlink:role=“book”xlink:title=“教材:掌握XML”
xlink:label=“book”>
掌握XML
</Remote>
<Remote>
xlink:href=“http://www.books.com/comment1.xml”
xlink:role=“comment”
xlink:title=“评论1”
xlink:label=“comment”
评论1
</Remote>
<Remote
xlink:href=“http://www.books.com/comment2.XML”
xlink:role=“comment”
xlink:title=“评论2”
xlink:label=“comment”>
评论2
</Remote>
<Arc
xlink:from=“book”
xlink:to=“category”
xlink:arcrole=“belonged”
xlink:title=“属于”>
教材所属类别
〈/Arc〉
<Arc
xlink:from=“book”
xlink:to=“comment”
xlink:arcrole=“comment”
xlink:title=“评论”
对本书的评论
</Arc>
</Extendedl Link>
上面是一个比较完整的扩展链接实例,除了说明本地资源与远程资源外,还包含一个多目标链接,即一本书可以链接两篇评论。事实上,关于多源多目标这一特点,W3C的XLink规范中有一个简单明了的范例:
<extendedlink2 xlink:type=“extended”>
<loc xlink:type=“locator”xlink:href=“...”xlink:label=“parent”xlink:title=“p1”/>
<loc xlink:type=“locator”xlink:href=“...”xlink:label=“parent”xlink:title=“p2”/>
<loc xlink:type=“locator”xlink:href=“...”xlink:label=“child”xlink:title=“c1”/> <loc xlink:type=“locator”xlink:href=“...”xlink:label=“child”xlink:title=“c2”/>
<loc xlink:type=“locator”xlink:href=“...”xlink:label=“child”xlink:title=“c3”/>
<go xlink:type=“arc”xlink:from=“parent”xlink:to=“child”/>.
</extendedlink2>
这一范例中,两个“parent”分别可以链接三个“child”,共形成六条链接。
3.2 XPointer Xplinter有点像URL,但除指向一个网上文件外,它更重要的功能是指向在XML文件内的片断。同时,它还允许只下载子资源,而不必下载几十个Kb的文档而只是得到其中所需的几十个字符,这种能力对保护因特网的带宽和链接成本极其有益。例如:
xpointer(id(“chap1”)/range-to(id(“chap2”)))
本例中,表示标记范围从ID属性为‘chap1’开始,到ID属性为‘chap2’结束。它需要在可控制资源内设置ID属性,以便XPointer能够指向其中的元素。而XPointer更强的功能在于可链接未控制资源,不需要在源文档中作标记。如下面例子中,表示标记MasteringXML.xml中每一次出现XLink的地方:
<Entry xlink:type=“extented”
xlink:href=“http://www.books.com/xml/
MasteringXML.xm1#xpointer(string-range(/,'XLink'))”
xlink:actuate=“requested”xlink:show=“new”>
</Entry>
3.3 关于XLink的实现 XLink标准中没有具体指明如何激活链接以及激活后如何处理目标资源,而只是建议把处理权交给应用程序。对于Web上的应用,虽然XML已经得到普遍支持,但当前的主流浏览器NetscapeNavigator和Internet Explorer对XLink的支持非常弱,在Netscape Navigator 6.0的预览发行版中可以发现对简单XML链接的支持,但是其支持的部分并不完全符合最新的规范;InternetExplorer 5.5没有提出对Xlink的支持。目前如果要在浏览器中显示链接,可以利用XSLT将XML链接转化为HTML链接加以显示。随着XLink规范的健全和稳定,相信不久的将来同样会得到Web的普遍支持。
4 XML联接与索引技术应用
前面的示例已部分展现出XML链接的优势,概括起来,XML链接有下列主要特点:
(1) 功能强大的超链接技术;
(2) 具备多源多目标链接、资料内容自选功能;
(3) 动态链接;
(4) 可链接第三方链接库,无须通过中间代理平台,使用者可直接下载资料;
XML提供的功能强大的超链接技术,尤其是扩展链接对以下几种情形有着重要意义:只读的共享资源;修改及更新资源的代价高,而修改及更新分开的链接元素的代价低;或是资源内在的格式并不支持植入链接(例如已经出版的著作、许多多媒体的格式等等)。而以上这几种情形都是索引技术发展中毫无疑问正在或将要面临的课题。
最基本的,XLink对本地及远程资源实现多源多目标的链接,以及XPointer可对任意片断标记的功能,可以使索引建立得更全面而细致,有利于检索效率的提高。
由于XML链接能对任何可寻址资源进行标记及创建链接,尤其是唯一能够创建第三方链接的功能,这使得对任意只读的共享资源建立索引成为可能,而事实上,很多具有宝贵价值的电子资源都只读属性的。如果注意一下本文最后一个示例,它实际上可以成为电子教材“MasteringXML”的电子索引中的一个片断,我们将继续进行针对未可控制资源建立电子索引的探讨。
众所周知,SGML的创立起因就是为电子数据交换提供可能的格式,而代表了SGML大部分功能的XML同样也具备这一重要特点。有了电子数据交换的基础,建立索引就会有事半功倍的效果,在相关领域建立既有广覆盖度又有深度的索引文档当然是非常值得期待的。
参考文献
1 http://www.w3.org/TR/xlink/
2 http://www.w3.org/TR/2001/WD-xptr-20010108/
3 http://www-900.ibm.com/developerWorks/cn/xml/tips/x-xlink/index-eng.shtml
4 [美]Navarro A,White C,Burman L.XML从入门到精通.周生炳,宋浩,等。北京:电子工业出版社,2000
5 叶华,张森.面向XML的链接技术研究.计算机应用研究,2001;(7):52
李 密 女 第二军医大学图书馆硕士研究生。
王 楠 第二军医大学图书馆硕士研究生。
耿亦兵 第二军医大学图书馆馆长,研究馆员。
(第二军医大学图书馆 上海 200433)