曝光臺 注意防騙
網曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
見圖8 - 3)。
圖8-3
你應該牢記這一點,當我們討論擴展鏈接時,會發現它的重要性。X L i n k是對位置而不是資
源進行操作的—資源的缺省位置為“ t o p”,但是資源類型也恰好采用這種定義。
4. 簡單鏈接的例子
在我們繼續討論之前,先簡要看兩個例子:
程序清單8 - 2 3
254使用XML 高級編程
下載
資源1 資源2
源目標
源
目標
資源1
這個例子創建了一個標題為Author list的鏈接,使用戶知道有一個與之相關的鏈接信息(可
以像H T M L文檔一樣為之加上下劃線)。當使用者擊活這個鏈接,文檔就會在新的上下文環境中
打開。
程序清單8 - 2 4
這個例子說明,當源文檔開始被提出來時,文檔a u t h o r s . x m l應在源文檔的鏈接位置被表示出
來(記住這實際上應該由用戶代理來決定如何對待鏈接,所以可能會有些變化)。
值得注意的是現在有些把show 和a c t u a t e結合起來,而這并沒有多大的意義,例如:
xlink:show =“r e p a l c e”和x l i n k : a c t u a t e =“o nLo a d”。這樣會潛在造成一個文檔到另一個文檔的
重復定向,但是如果兩個這樣的鏈接同時出現在嚴格源文檔中,應該會出現什么樣的情形呢?
對于所有特殊的顯示行為, W 3 C并沒有試圖去闡明在類似于這些的情景中,一個表達行為應該
是怎樣的,相信時間會告訴我們如何使用特定的工具去解決這個問題。
5. 擴展鏈接
對XLi n k來說,另外一種鏈接方式稱為擴展鏈接。擴展鏈接允許把多個資源鏈接在一起,它
們會被指定為(也就是說,在一個不是源文檔的文檔中)。讓我們看一下擴展鏈接的語法。
這里定義了一個擴展鏈接:
程序清單8 - 2 5
注意我們有四種類型的子元素: < x l i n k : t i t l e > 、< x l i n k : a r c > 、< x l i n k : l o c a t o r >和
< x l i n k : r e s o u r c e >,稍后我們再討論這些子元素。下面的屬性可能與一個擴展鏈接相關:
(1) xlink:type
對于擴展鏈接來說,該屬性總是屬于擴展的。如果你聲明了一個擴展XLi n k元素,那么這個
擴展元素的名字應該是< x l i n k : e x t e n d e d >。
(2) xlink:role
該屬性和簡單鏈接元素行使同樣的功能。
(3) xlink:title
該屬性和簡單鏈接元素行使著同樣的功能。
第8章鏈接和查詢使用255 下載
注意對于鏈接的目標元素來說并沒有明確的標準—因為沒有h r e f屬性。實際上,數據源也
沒有定義—不像簡單鏈接,擴展鏈接并不意味著它們的數據源是鏈接所處的文檔。為了指明
參與鏈接的不同位置及鏈接之間的連接,我們有必要使用兩個子元素< x l i n k : l o c a t i o n >和
< x l i n k : a r c >。
(4) <xlink:title>元素
這個元素用來把擴展鏈接與語義信息相關聯,例如:一個鏈接和菜單的不同頁碼相關聯,
可能具有值為“ M e n u”的< x l i n k : t i t l e >元素。這個信息的使用由處理器來完成—XLi n k規范并
沒有規定該信息的使用。可以指定多個標題(例如,一個X M L文檔正在被國際化)。
這里是< x l i n k : t i t l e >元素的定義:
程序清單8 - 2 6
其中一個屬性x m l : l a n g,就是用來為國際化目的指定一種語言。
(5) <xlink:locator>元素
這些總是作為擴展鏈接的子元素出現的,它們用來指定參與擴展鏈接的定位。例如,如果
我們在五個不同的數據源之間采用鏈接(比如說,菜單的5個頁碼),那么參與鏈接的這五個子
元素每個將有一個定位子元素。
這里是< x l i n k : l o c a t o r >元素的定義:
程序清單8 - 2 7
正如你所看到的,在這里你可以指定位置的U R I以及它的文本名稱和大致功能。這些屬性發
揮著它們在簡單連接中同樣的功能。
注意:一個定位并不是顯式地指定一個鏈接—它僅僅指定一個參與鏈接的位置。為了定
義定位之間顯式的鏈接,我們需要使用< x l i n k : a r c >元素。
(6) <xlink:arc>元素
這些也總是作為擴展鏈接的子元素出現的,用來定義參與擴展鏈接的兩個定位之間的連接。
這里是< x l i n k : a r c >元素的定義:
程序清單8 - 2 8
256使用XML 高級編程
下載
s h o w和a c t u a t e屬性發揮著它們在簡單連接中同樣的功能:它們定義鏈接如何被初始化和顯
示。如果不指定這些屬性,應該由部分實現來決定如何橫貫這些a r c,這里有兩個新屬性:
(7) xlink:from
這個元素是定義鏈接起始點的< x l i n k : l o c a t o r >和< x l i n k : r e s o u r c e >元素的r o l e屬性的值。顯式
定義了連接的數據源能夠使我們創建外聯數據庫,就如我們本章后面所見到的。
(8) xlink:to
這個元素是定義鏈接截止點的< x l i n k : l o c a t o r >和< x l i n k : r e s o u r c e >元素的r o l e屬性的值。
注意擴展鏈接中現在有不止一個的定位和資源具有相同的r o l e,一個定義于r o l e上的a r c會把
所有具有role 的定位連接起來。例如,假如說我們有下面的文檔:
程序清單8 - 2 9
擴展鏈接定義了下面的連接:
程序清單8 - 3 0
(9) <xlink:resource>元素
這些是作為擴展鏈接的子元素出現的,是用來定義鏈接的本地(內聯)部分(添加到
< x l i n k : l o c a t o r >元素,用來指定連接的外聯部分)。這些元素具有r o l e和t i t l e屬性,具有一個A N Y
的內容類型,而這個內容的用途不是由XLi n k規范所定義的。
下面是< x l i n k : r e s o u r c e >元素的定義:
第8章鏈接和查詢使用257 下載
程序清單8 - 3 1
(10) 隱式與顯式A r c s
注意:查看一下參與擴展鏈接的位置列表可決定某些連接信息,假如我們聲明了一個擴展
中國航空網 m.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(91)