技巧: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 >Check out Nickel Creek!</a>
中所熟悉的
a
元素。但 XLink 提供的遠遠不止是單向鏈接。使用 XLink,可以創建雙向鏈接。還可以定義如何處理鏈接,并且更重要的是,可以允許從
任何 XML 元素(而不是僅僅從
a
元素)鏈接。由于所有這些原因,很值得我們去了解 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 行為。
![]() ![]() |
![]()
|
到現在為止,我只講述了基本鏈接。如果想訪問作為資源的遠程位置,譬如圖像鏈接,事情會變得很有趣。請查看清單 1 中的
description
元素。它將
xlink:show
屬性值設置成 "embed"。這意味著會在該頁面中直接處理該資源(在本示例中,顯示所描述吉他的圖像文件)。這實質上是告訴支持 XLink
的瀏覽器,在 XML 中直接插入指定的文檔。如果考慮的不僅僅是一個圖像而是另一個 XML 文檔時,可能性確實還遠遠不止這些。
更深一步,您可以指定資源
什么時候出現。計時是由
xlink:actuate
屬性來處理,它定義什么時候資源是 "read" 以及顯示。值為 "onLoad" 時,如清單 1
中所示,當初始文檔裝入時,就載入該資源,這時還應當顯示該資源。您還可以指定 "onRequest"
值,這意味著只有當單擊該鏈接時,才會顯示該資源。對于低寬帶設置,這很方便,使得用戶可以選擇他想花功夫等待的資源。
我知道本文僅是 XLink 一瞥,但它應當給您一個好的開始。關于 XLink 的詳細信息,請查看 參考資料中的規范。您還應該密切注視新的支持 XLink 的瀏覽器的功能列表,一旦支持 XLink,就使用它吧。
![]() ![]() |
![]()
|
- 您可以參閱本文在 developerWorks 全球站點上的
英文原文.
- 有關 XLink 的詳細信息,請查看
XLink 規范。
- 當您已開始使用 XLink,請查看
XPointer,它將更多的、更高級的鏈接添加到 XLink。
- 通過 Doug Tidwell 的系列文章
Building an XML application研讀您的 XML。
-
IBM 認證開發人員將對您有的 XML 和相關技術的知識進行認證。
![]() ![]() |
![]()
|
![]() |
||
|
![]() |
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 閱讀(621) 評論(0) 編輯 收藏 所屬分類: XML