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 >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,就使用它吧。





          回頁首


          參考資料

          • 您可以參閱本文在 developerWorks 全球站點上的 英文原文.

          • 有關 XLink 的詳細信息,請查看 XLink 規范。

          • 當您已開始使用 XLink,請查看 XPointer,它將更多的、更高級的鏈接添加到 XLink。

          • 通過 Doug Tidwell 的系列文章 Building an XML application研讀您的 XML。

          • IBM 認證開發人員將對您有的 XML 和相關技術的知識進行認證。




          回頁首


          關于作者

          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 閱讀(621) 評論(0)  編輯  收藏 所屬分類: XML

          主站蜘蛛池模板: 东安县| 化州市| 广昌县| 吴川市| 双城市| 新田县| 区。| 同江市| 常州市| 济阳县| 浦北县| 隆回县| 类乌齐县| 静乐县| 天津市| 墨脱县| 潢川县| 绥中县| 南和县| 衡水市| 九龙县| 潞西市| 双峰县| 怀安县| 龙门县| 大丰市| 泸州市| 北安市| 汨罗市| 榕江县| 灵璧县| 府谷县| 阿尔山市| 益阳市| 息烽县| 大邑县| 曲松县| 天水市| 霍林郭勒市| 黄龙县| 合水县|