最新的Web開發教程
 

XML的XLink和XPointer


XLink的用於創建XML文檔的超鏈接。


XPath的
  • XLink的用於創建XML文檔內的超級鏈接
  • XML文檔中的任何元件可以表現為一個鏈接
  • 隨著的XLink,鏈接可以鏈接的文件之外定義
  • 的XLink是W3C推薦

XLink的瀏覽器支持

有一個在XML文檔中的XLink為沒有瀏覽器的支持。 然而,所有的主流瀏覽器都支持SVG中的XLink


XLink的語法

在HTML中, <a>元素定義的超鏈接。 然而,這是不是它是如何工作的XML。 在XML文檔中,你可以使用任何你想要的元素名稱 - 所以這是不可能的瀏覽器來預測哪些鏈接元素將在XML文檔中調用。

下面是如何使用的XLink創建XML文檔中的鏈接的簡單示例:

<?xml version="1.0" encoding="UTF-8"?>

<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="http://www.w3ii.com">Visit w3ii</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>

為了獲得訪問XLink的功能,我們必須聲明XLink命名空間。 XLink命名空間是: "http://www.w3.org/1999/xlink"

屬於XLink:類型和xlink:href的屬性<homepage>元素來自XLink命名空間。

屬於XLink:類型=“簡單”創建一個簡單的"HTML-like"鏈接(意思是“請點擊這裡去那裡”)。

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">
  As his fifth year at Hogwarts School of Witchcraft and
  Wizardry approaches, 15-year-old Harry Potter is.......
  </description>
</book>

<book title="XQuery Kick Start">
  <description
  xlink:type="simple"
  xlink:href="/images/XQuery.gif"
  xlink:show="new">
  XQuery Kick Start delivers a concise introduction
  to the XQuery standard.......
  </description>
</book>

</bookstore>

例子解釋:

  • XLink命名空間聲明在文檔的頂部(xmlns:xlink="http://www.w3.org/1999/xlink")
  • 屬於XLink:類型=“簡單”創建一個簡單的"HTML-like"鏈接
  • xlink:href屬性指定URL鏈接(在這種情況下-圖片)
  • 屬於XLink:秀=“新”指定的鏈接應該在新窗口中打開

XLink的 - 深入學習

在上面的例子中,我們已經證明簡單的XLink。 訪問遠程位置時作為資源,而不是獨立的頁面的XLink越來越有趣。

如果我們設定的值xlink:show屬性為"embed" ,鏈接的資源應該被內嵌在網頁內處理。 當你考慮到這可能是另一個XML文檔,你可以,例如,建立XML文檔的層次結構。

您還可以指定當資源應該出現,用xlink:actuate屬性。


XLink的屬性參考

屬性 描述
xlink:actuateonLoad
onRequest
other
none
當鏈接的資源被讀取並顯示定義:
  • 的onLoad - 資源應該被加載並顯示在文檔加載
  • onRequest - 資源不被讀取或者所示,點擊鏈接之前
xlink:href URL 指定的URL鏈接到
xlink:showembed
new
replace
other
none
指定在哪裡打開鏈接。 默認值是"replace"
xlink:typesimple
extended
locator
arc
resource
title
none
指定鏈接的類型

XPointer的

XPath的
  • XPointer的允許鏈接指向一個XML文檔的特定部分
  • 的XPointer使用XPath表達式在XML文檔中進行導航
  • 的XPointer是W3C推薦

XPointer的瀏覽器支持

沒有為XPointer的沒有瀏覽器的支持。 但XPointer的是其他XML語言的使用。


XPointer的實例

在這個例子中,我們將使用的XPointer與XLink的結合以指向另一文檔的特定部分。

我們將通過查看目標XML文檔(文檔,我們鏈接到)開始:

<?xml version="1.0" encoding="UTF-8"?>

<dogbreeds>

<dog breed="Rottweiler" id="Rottweiler">
  <picture url="http://dog.com/rottweiler.gif" />
  <history>The Rottweiler's ancestors were probably Roman
  drover dogs.....</history>
  <temperament>Confident, bold, alert and imposing, the Rottweiler
  is a popular choice for its ability to protect....</temperament>
</dog>

<dog breed="FCRetriever" id="FCRetriever">
  <picture url="http://dog.com/fcretriever.gif" />
  <history>One of the earliest uses of retrieving dogs was to
  help fishermen retrieve fish from the water....</history>
  <temperament>The flat-coated retriever is a sweet, exuberant,
  lively dog that loves to play and retrieve....</temperament>
</dog>

</dogbreeds>

需要注意的是XML文檔上面的每個元素上使用的id屬性!

因此,而不是鏈接到整個文檔(as with XLink) ,XPointer的,您可以鏈接到文件的特定部分。 要鏈接到頁面的特定部分,添加一個數字符號(#)並在該網址後的XPointer表達式xlink:href屬性,比如:XLink的:HREF =“http://dog.com/dogbreeds.xml #xpointer(ID('羅威'))“。 表達是指在目標文檔中的元素,以值的id "Rottweiler"

XPointer的還可以鏈接到一個元素一個id的速記方法。 您可以直接使用id的值,比如:XLink的:HREF =“http://dog.com/dogbreeds.xml#Rottweiler”。

下面的XML文檔包含鏈接到狗的品種為每個我的狗的詳細信息:

<?xml version="1.0" encoding="UTF-8"?>

<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">

<mydog>
  <description>
  Anton is my favorite dog. He has won a lot of.....
  </description>
  <fact xlink:type="simple" xlink:href="http://dog.com/dogbreeds.xml#Rottweiler">
  Fact about Rottweiler
  </fact>
</mydog>

<mydog>
  <description>
  Pluto is the sweetest dog on earth......
  </description>
  <fact xlink:type="simple" xlink:href="http://dog.com/dogbreeds.xml#FCRetriever">
  Fact about flat-coated Retriever
  </fact>
</mydog>

</mydogs>