曝光臺 注意防騙
網(wǎng)曝天貓店富美金盛家居專營店坑蒙拐騙欺詐消費者
稍后我們將要再回顧一下鏈接數(shù)據(jù)庫這個主題。
(2) HTML鏈接只允許在一個方向瀏覽
如果我們有一系列希望用戶能夠瀏覽的頁,我們需要明確地定義各頁面之間的超鏈接。例
如我們可以有一個文檔叫p a g e 1 . h t m,它包含超鏈接到p a g e 2 . h t m的單詞N e x t。如果我們想定義超
鏈接(比如說單詞P r e v i o u s)以使我們?yōu)g覽到p a g e 1 . h t m,我們需要明確地在這里定義指向其他
方向的鏈接。如果一旦我們能夠聲明兩個頁是鏈接過,而不用擔心瀏覽方向,這將是非常好的
事情。
(3) HTML鏈接只鏈接兩個資源
我們已經(jīng)在I n t e r n e t上看到站點,那里多個信息頁被一系列的鏈接列表或被P r e v i o u s和N e x t連
接:
程序清單8 - 1 9
當然,菜單的每個頁有近似的超鏈接列表,這就使菜單變得有魔力。如果Joe's Grill決定加
一個意大利面食菜單,每個頁將需要有一個鏈接添加到意大利面食菜單上。如果我們能指定所
有資源被鏈入一個地方并讓瀏覽器負責在它們之間瀏覽,這將非常好。
(4) HTML鏈接不能指定顯示引擎的行為
如果能指定引擎顯示內容的一些附加概念行為的話將非常好顯示引擎應該自動穿越鏈接,
第8章鏈接和查詢使用251 下載
還是應該在做此之前等待用戶的交互?顯示引擎應該創(chuàng)建一個新的上下文(對于瀏覽器是一個
新的窗口)來表現(xiàn)鏈接內容,還是應嵌入當前內容?通過H T M L鏈接,只有目標命名的窗口可以
被指定,瀏覽器將根據(jù)它當前的狀態(tài)做不同的反映(例如,如果一個帶有明確名稱的窗口已經(jīng)
打開,它將覆蓋內容;否則,它將創(chuàng)建新窗口)。
W 3 C的X M L鏈接規(guī)范正像我們將要看到的,描述了所有這些問題。
8.2.2 W3C規(guī)范:XLink
X M L鏈接規(guī)范被稱作X L i n k。它現(xiàn)在處在工作草案階段,這意味著實現(xiàn)的細節(jié)可能在它變成
W 3 C推薦書之前改動。這個文檔最新的版本可在h t t p : / / w w w. w 3 . o rg / T R / W D - x l i n k上找到(1 9 9 9
年1 2月2 0日為止的最新版本)。
自從X L i n k規(guī)范還在工作草案階段時起,到截稿時止,這里沒有任何強大的功能上的變動。
但是現(xiàn)在更好地理解這些概念,在它進入主流時將要使你能夠充分利用X L i n k的優(yōu)點。
1. XLink 聲明
命名空間通過W 3 C聲明了X L i n k的十二月工作草案:
h t t p : / / w w w. w 3 . o rg / 1 9 9 9 / x l i n k / n a m e s p a c e /
為了從一個X M L文檔聲明一個鏈接,命名空間必須被定義成子樹,鏈接在那里被聲明。這
里有兩種方法聲明一個鏈接:
• 你可以創(chuàng)建一個X L i n k元素。
• 你可以添加X L i n k屬性到一個你自己的元素。
一個X M L鏈接元素就是在< x l i n k : t y p e >中的元素(注意在t y p e位置有兩種可能的值,我們將
很快遇到它):
程序清單8 - 2 0
并且一個帶有與它相關的X L i n k屬性的元素,它帶有一個x l i n k : t y p e屬性:
程序清單8 - 2 1
當然命名空間應用的正常規(guī)則—如果你在上一級定義命名空間,則不用再一次聲明鏈接
元素。
注意如果你選擇添加X L i n k屬性到你自己的元素,并且你正使用一個D T D,你將需要在
< ! ATTLIST> 里為鏈接元素定義屬性。否則,你的驗證處理器將抱怨它不能識別x l i n k : *屬性!對
于上面的例子,在D T D里將需要這個元素定義:
252使用XML 高級編程
下載
程序清單8 - 2 2
2. 鏈接類型
正如我們剛剛說的, x l i n k : t y p e元素和屬性中t y p e可以取兩個值: s i m p l e或e x t e n d e d。s i m p l e
鏈接類似于H T M L超鏈接,而e x t e n d e d鏈接提供了更多的功能。正如我們后面將要看到的,簡單
鏈接是擴展鏈接的子集——盡管簡單鏈接采用不同的語法。在本節(jié)中,我們將依次介紹每種類
型的鏈接。首先從簡單鏈接開始。
3. 簡單鏈接
簡單鏈接非常類似于H T M L的<A HREF=...>鏈接,想必你對此應該非常熟悉。聲明簡單鏈
接時,可以使用以下屬性:
(1) xlink:type
對于簡單鏈接,該屬性總是s i m p l e 。如果你聲明簡單X L i n k元素,元素名稱應該是
x l i n k : s i m p l e。
(2) xlink:href
鏈接的目標U R I。
(3) xlink:role
它是描述鏈接內容的功能的字符串。雖然W 3 C沒有指定r o l e的用途,但是某些X L i n k的實現(xiàn)
使用r o l e字符串控制文檔的顯示。
(4) xlink:title
這個用戶可讀的字符串描述了鏈接。同樣, W 3 C沒有指定如何將它應用于支持X L i n k的顯示
程序,但是它能夠為用戶提供可視化的指示,說明元素是一個鏈接。
(5) xlink:show
該屬性定義了如何向用戶顯示目標內容。它可以取以下三個值:
• new—目標內容應該顯示在獨立的環(huán)境中(對于瀏覽器,應該是新的瀏覽器窗口)。
• r e p l a c e—目標內容應該替換原來環(huán)境中的源內容(對于瀏覽器,這是超鏈接的常規(guī)特
征)。
• embedded—內容應該嵌入源文檔的鏈接位置。
(6) xlink:actuate
該屬性定義了何時觸發(fā)鏈接。它可以取以下兩個值:
• o n R e q u e s t—用戶必須采取某些操作才能夠觸發(fā)鏈接。它類似于H T M L超鏈接的工作方式,
用戶必須點擊鏈接的文本才能夠激活鏈接。
• o n L o a d—加載源文檔時,鏈接將自動激活。當x l i n k : s h o w屬性為e m b e d d e d時,該屬性最
第8章鏈接和查詢使用253 下載
有用,但是當x l i n k : s h o w為n e w時,也可以使用該屬性(例如,打開源文檔時,自動打開另
一個環(huán)境窗口,并加載目的信息)。
簡單鏈接的功能與H T M L超鏈接基本相當—它以單方向鏈接兩個位置,鏈接的開始總是鏈
接本身的聲明(參見圖8 - 2)。
圖8-2
需要注意的是,即使我們將資源顯示為不同的,對于兩個相同的資源來說也是可以的(參
中國航空網(wǎng) www.k6050.com
航空翻譯 www.aviation.cn
本文鏈接地址:
XML高級編程上(90)