級(jí)別: 初級(jí)
Brett McLaughlin, Enhydra 策略顧問, Lutris Technologies
2001 年 7 月 01 日
XLink 是一種與 XML 相關(guān)的規(guī)范,它使您在 XML 文檔中獲得生動(dòng)的鏈接效果。在這篇短小的技巧文章中,學(xué)習(xí)如何通過 XLink 在 XML 文檔中包含其它 XML 文檔的部件。代碼示例演示了這項(xiàng)技術(shù)。
自兩年
多前,發(fā)布了 XML以來,開發(fā)了數(shù)量令人難以置信的、都與 "X" 相關(guān)的事物。正如該事實(shí)所證明,您可以發(fā)現(xiàn)當(dāng)今許多與 XML
相關(guān)的規(guī)范:XPointer、XLink、XSD(XML
Schema)、RDF、RSS、XHTML,甚至還可以說出一些。在本文中,我簡要探索了 XLink,定義了引用其它文檔的 XML
鏈接機(jī)制的一種特別有用的規(guī)范。
對(duì)于 HTML 作者來說,開始 XLink 聽起來非常象
<a >Check out Nickel Creek!</a>
中所熟悉的
a
元素。但 XLink 提供的遠(yuǎn)遠(yuǎn)不止是單向鏈接。使用 XLink,可以創(chuàng)建雙向鏈接。還可以定義如何處理鏈接,并且更重要的是,可以允許從
任何 XML 元素(而不是僅僅從
a
元素)鏈接。由于所有這些原因,很值得我們?nèi)チ私?XLink。
操作中 XLink
讓我從為您顯示一個(gè)小的 XML 文檔開始,這個(gè)文檔表示了我的幾把吉他。
清單 1使用了一些 XLink 構(gòu)造。
首先,您注意到我引用了 XLink 名稱空間,以便該文檔訪問 XLink 屬性和功能。其次,我只涵蓋了 "simple" 類型的 XLink,該類型是由
xlink:type
屬性指定的。那是由于支持 XLink 的瀏覽器很少,目前,只發(fā)現(xiàn) Mozilla 和 Netscape 6 支持。(我還無法在 IE 6.0 中測(cè)試過,但版本 5.5 是無 XLink 支持。)所以您只需要了解 XLink 的基本特征
現(xiàn)在,您有一些基本的 XML 可以使用。為了利用 XLink,您所要做的就是使用包含鏈接的元素上的一些屬性。請(qǐng)看文檔的
guitar
元素,它對(duì)每個(gè)吉他都指定了一個(gè)弦樂器制作匠(吉他制造者)。我已經(jīng)討論過設(shè)置成值 "simple" 的
xlink:type
屬性的用法。然后該元素使用 XLink 指定鏈接到的 URL。為了指定這個(gè) URL,該元素使用
xlink:href
屬性。在這一點(diǎn)上,您可能認(rèn)為,“這沒有什么大不了的”,它就象 HTML 一樣。這一點(diǎn)上,您是對(duì)的。缺省情況下(當(dāng)然,這里假定瀏覽器支持
XLink),當(dāng)單擊該鏈接時(shí),這會(huì)設(shè)置一個(gè)替換當(dāng)前窗口的鏈接。、如果希望在一個(gè)新窗口中打開鏈接的目標(biāo),那么可以通過添加 xlink:show
屬性,給它一個(gè) "new" 值來實(shí)現(xiàn);缺省是 "replace",這是普通的 HTML 行為。
XLink 的潛力
到現(xiàn)在為止,我只講述了基本鏈接。如果想訪問作為資源的遠(yuǎn)程位置,譬如圖像鏈接,事情會(huì)變得很有趣。請(qǐng)查看清單 1 中的
description
元素。它將
xlink:show
屬性值設(shè)置成 "embed"。這意味著會(huì)在該頁面中直接處理該資源(在本示例中,顯示所描述吉他的圖像文件)。這實(shí)質(zhì)上是告訴支持 XLink
的瀏覽器,在 XML 中直接插入指定的文檔。如果考慮的不僅僅是一個(gè)圖像而是另一個(gè) XML 文檔時(shí),可能性確實(shí)還遠(yuǎn)遠(yuǎn)不止這些。
更深一步,您可以指定資源
什么時(shí)候出現(xiàn)。計(jì)時(shí)是由
xlink:actuate
屬性來處理,它定義什么時(shí)候資源是 "read" 以及顯示。值為 "onLoad" 時(shí),如清單 1
中所示,當(dāng)初始文檔裝入時(shí),就載入該資源,這時(shí)還應(yīng)當(dāng)顯示該資源。您還可以指定 "onRequest"
值,這意味著只有當(dāng)單擊該鏈接時(shí),才會(huì)顯示該資源。對(duì)于低寬帶設(shè)置,這很方便,使得用戶可以選擇他想花功夫等待的資源。
我知道本文僅是 XLink 一瞥,但它應(yīng)當(dāng)給您一個(gè)好的開始。關(guān)于 XLink 的詳細(xì)信息,請(qǐng)查看
參考資料中的規(guī)范。您還應(yīng)該密切注視新的支持 XLink 的瀏覽器的功能列表,一旦支持 XLink,就使用它吧。
參考資料
關(guān)于作者
|
|
|
Brett McLaughlin (
brett@newinstance.com) 是 Lutris Technologies 的 Enhydra 策略顧問,他致力于研究分布式系統(tǒng)體系結(jié)構(gòu)。他是
Java and XML(O'Reilly)
的作者。他還參與了諸如 Java Servlet、Enterprise JavaBeans 技術(shù)、XML
和商家對(duì)商家應(yīng)用程序等技術(shù)的研究。他與 Jason Hunter 一起創(chuàng)建了 JDOM 項(xiàng)目,該項(xiàng)目為在 Java 應(yīng)用程序中使用 XML
提供了一個(gè)簡單的 API。他還是 Apache Cocoon 項(xiàng)目、EJBoss EJB 服務(wù)器的活躍開發(fā)人員,以及 Apache
Turbine 項(xiàng)目的共同創(chuàng)始人。
|