Vincent.Chan‘s Blog

常用链接

统计

积分与排名

网站

最新评论

技巧:XML 中如何使用 XLink::XLink 是用于基本链接或用于嵌入外部资源

级别: 初级

Brett McLaughlin, Enhydra 策略顾问, Lutris Technologies

2001 年 7 月 01 日

XLink 是一种与 XML 相关的规范,它使您在 XML 文档中获得生动的链接效果。在这篇短小的技巧文章中,学习如何通过 XLink 在 XML 文档中包含其它 XML 文档的部件。代码示例演示了这项技术。

自两年 多前,发布了 XML以来,开发了数量令人难以置信的、都与 "X" 相关的事物。正如该事实所证明,您可以发现当今许多与 XML 相关的规范:XPointer、XLink、XSD(XML Schema)、RDF、RSS、XHTML,甚至还可以说出一些。在本文中,我简要探索了 XLink,定义了引用其它文档的 XML 链接机制的一种特别有用的规范。

对于 HTML 作者来说,开始 XLink 听起来非常象 <a href="http://www.nickelcreek.com">Check out Nickel Creek!</a> 中所熟悉的 a 元素。但 XLink 提供的远远不止是单向链接。使用 XLink,可以创建双向链接。还可以定义如何处理链接,并且更重要的是,可以允许从 任何 XML 元素(而不是仅仅从 a 元素)链接。由于所有这些原因,很值得我们去了解 XLink。

操作中 XLink

让我从为您显示一个小的 XML 文档开始,这个文档表示了我的几把吉他。 清单 1使用了一些 XLink 构造。

首先,您注意到我引用了 XLink 名称空间,以便该文档访问 XLink 属性和功能。其次,我只涵盖了 "simple" 类型的 XLink,该类型是由 xlink:type 属性指定的。那是由于支持 XLink 的浏览器很少,目前,只发现 Mozilla 和 Netscape 6 支持。(我还无法在 IE 6.0 中测试过,但版本 5.5 是无 XLink 支持。)所以您只需要了解 XLink 的基本特征

现在,您有一些基本的 XML 可以使用。为了利用 XLink,您所要做的就是使用包含链接的元素上的一些属性。请看文档的 guitar 元素,它对每个吉他都指定了一个弦乐器制作匠(吉他制造者)。我已经讨论过设置成值 "simple" 的 xlink:type 属性的用法。然后该元素使用 XLink 指定链接到的 URL。为了指定这个 URL,该元素使用 xlink:href 属性。在这一点上,您可能认为,“这没有什么大不了的”,它就象 HTML 一样。这一点上,您是对的。缺省情况下(当然,这里假定浏览器支持 XLink),当单击该链接时,这会设置一个替换当前窗口的链接。、如果希望在一个新窗口中打开链接的目标,那么可以通过添加 xlink:show 属性,给它一个 "new" 值来实现;缺省是 "replace",这是普通的 HTML 行为。





回页首


XLink 的潜力

到现在为止,我只讲述了基本链接。如果想访问作为资源的远程位置,譬如图像链接,事情会变得很有趣。请查看清单 1 中的 description 元素。它将 xlink:show 属性值设置成 "embed"。这意味着会在该页面中直接处理该资源(在本示例中,显示所描述吉他的图像文件)。这实质上是告诉支持 XLink 的浏览器,在 XML 中直接插入指定的文档。如果考虑的不仅仅是一个图像而是另一个 XML 文档时,可能性确实还远远不止这些。

更深一步,您可以指定资源 什么时候出现。计时是由 xlink:actuate 属性来处理,它定义什么时候资源是 "read" 以及显示。值为 "onLoad" 时,如清单 1 中所示,当初始文档装入时,就载入该资源,这时还应当显示该资源。您还可以指定 "onRequest" 值,这意味着只有当单击该链接时,才会显示该资源。对于低宽带设置,这很方便,使得用户可以选择他想花功夫等待的资源。

我知道本文仅是 XLink 一瞥,但它应当给您一个好的开始。关于 XLink 的详细信息,请查看 参考资料中的规范。您还应该密切注视新的支持 XLink 的浏览器的功能列表,一旦支持 XLink,就使用它吧。





回页首


参考资料





回页首


关于作者

Brett McLaughlin

Brett McLaughlin ( brett@newinstance.com) 是 Lutris Technologies 的 Enhydra 策略顾问,他致力于研究分布式系统体系结构。他是 Java and XML(O'Reilly) 的作者。他还参与了诸如 Java Servlet、Enterprise JavaBeans 技术、XML 和商家对商家应用程序等技术的研究。他与 Jason Hunter 一起创建了 JDOM 项目,该项目为在 Java 应用程序中使用 XML 提供了一个简单的 API。他还是 Apache Cocoon 项目、EJBoss EJB 服务器的活跃开发人员,以及 Apache Turbine 项目的共同创始人。

posted on 2006-03-21 23:37 Vincent.Chen 阅读(574) 评论(0)  编辑  收藏 所属分类: XML


只有注册用户登录后才能发表评论。


网站导航: