XML, XLink 和 XPointer
XLink 用於在 XML 文件中建立超連結。
![]() |
|
XLink 瀏覽器支援
XLink 在 XML 文件中沒有瀏覽器支援。
但是,所有主流瀏覽器都支援 SVG 中的 XLink。
XLink 語法
在 HTML 中,<a> 元素定義了一個超連結。然而,XML 的工作方式並非如此。在 XML 文件中,您可以使用任何您想要的元素名稱——因此瀏覽器無法預測 XML 文件中的連結元素將是什麼名稱。
下面是一個在 XML 文件中使用 XLink 建立連結的簡單示例
<?xml version="1.0" encoding="UTF-8"?>
<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
<homepage xlink:type="simple" xlink:href="https://w3schools.tw">訪問 W3Schools</homepage>
<homepage xlink:type="simple" xlink:href="http://www.w3.org">訪問 W3C</homepage>
</homepages>
要訪問 XLink 功能,我們必須宣告 XLink 名稱空間。XLink 名稱空間是:"http://www.w3.org/1999/xlink"。
<homepage> 元素中的 xlink:type 和 xlink:href 屬性來自 XLink 名稱空間。
xlink:type="simple" 建立一個簡單的“類似 HTML”的連結(表示“單擊此處跳轉到那裡”)。
xlink:href 屬性指定要連結到的 URL。
XLink 示例
以下 XML 文件包含 XLink 功能
<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns: xlink="http://www.w3.org/1999/xlink">
<book title="Harry Potter">
<description
xlink:type="simple"
xlink:href="/images/HPotter.gif"
xlink:show="new">
隨著他第五年在霍格沃茨魔法學校的學習臨近,15 歲的哈利·波特.......
魔法學校的學習臨近,15 歲的哈利·波特.......
</description>
</book>
<book title="XQuery Kick Start">
<description
xlink:type="simple"
xlink:href="/images/XQuery.gif"
xlink:show="new">
XQuery Kick Start 提供了對 XQuery 標準的簡潔介紹.......
對 XQuery 標準的簡潔介紹.......
</description>
</book>
</bookstore>
示例說明
- XLink 名稱空間在文件頂部宣告 (xmlns: xlink="http://www.w3.org/1999/xlink")
- xlink:type="simple" 建立一個簡單的“類似 HTML”的連結
- xlink:href 屬性指定要連結到的 URL(在此情況下是一個影像)
- xlink:show="new" 指定連結應在新視窗中開啟
XLink - 進一步探索
在上面的示例中,我們演示了簡單的 XLinks。當訪問遠端位置作為資源而不是獨立頁面時,XLink 會變得更有趣。
如果我們設定 xlink:show 屬性的值為 "embed",則連結的資源應在頁面內聯處理。考慮到這可能是一個另一個 XML 文件,您例如可以構建一個 XML 文件的層次結構。
您還可以使用 xlink:actuate 屬性指定資源何時出現。
XLink 屬性參考
Attribute | 值 | 描述 |
---|---|---|
xlink:actuate | onLoad onRequest other none |
定義連結資源的讀取和顯示時間
|
xlink:href | URL | 指定要連結到的 URL |
xlink:show | embed new replace other none |
指定連結的開啟位置。預設值為 "replace" |
xlink:type | simple extended locator arc resource title none |
指定連結的型別 |
XPointer
![]() |
|
XPointer 瀏覽器支援
XPointer 沒有瀏覽器支援。但 XPointer 在其他 XML 語言中使用。
XPointer 示例
在此示例中,我們將結合使用 XPointer 和 XLink 來指向另一個文件的特定部分。
我們將從檢視目標 XML 文件(我們要連結到的文件)開始
<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
<picture url="https://dog.com/rottweiler.gif" />
<history>羅威納犬的祖先可能是羅馬
牧羊犬.....</history>
<temperament>自信、大膽、警惕且令人印象深刻,羅威納犬
因其保護能力而成為熱門選擇....</temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
<picture url="https://dog.com/fcretriever.gif" />
<history>最早使用尋回犬之一是為了
幫助漁民從水中取魚....</history>
<temperament>平毛尋回犬是一種甜美、活潑、
充滿活力的狗,喜歡玩耍和尋回....</temperament>
</dog>
</dogbreeds>
請注意,上面的 XML 文件使用了 id 屬性!
因此,XPointer 允許您連結到文件的特定部分,而不是連結到整個文件(如 XLink)。要連結到頁面的特定部分,請在 xlink:href 屬性的 URL 後面新增井號 (#) 和 XPointer 表示式,如下所示:xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"。該表示式引用目標文件中 id 值為 "Rottweiler" 的元素。
XPointer 還允許使用簡寫方法連結到具有 id 的元素。您可以直接使用 id 的值,如下所示:xlink:href="https://dog.com/dogbreeds.xml#Rottweiler"。
以下 XML 文件包含了我每隻狗的犬種的更多資訊連結
<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns: xlink="http://www.w3.org/1999/ xlink">
<mydog>
<description>
安東是我最喜歡的狗。他贏了很多.....
</description>
<fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
關於羅威納犬的事實
</fact>
</mydog>
<mydog>
<description>
普魯託是地球上最可愛的狗......
</description>
<fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
關於平毛尋回犬的事實
</fact>
</mydog>
</mydogs>