XML, XLink ve XQuery

XLink, XML belgelerinde bağlantı oluşturmak için kullanılır.

XPath

  • XLink, XML belgelerinde bağlantı oluşturmak için kullanılır.
  • XML belgesindeki herhangi bir element bağlantı olarak kullanılabilir.
  • XLink ile, bağlantılı dosya dışında bağlantı tanımlanabilir.
  • XLink W3C tarafından önerilen standarttır.

XLink Tarayıcı Desteği

Tarayıcılar XML belgelerindeki XLink'i desteklememektedir.

Ancak, tüm popüler tarayıcılar destekler. SVG'deki XLink.

XLink Grami

HTML'de, <a> elementi bağlantıyı tanımlar. Ancak, bu XML'deki çalışma şekli değildir.

XML belgesinde, istediğiniz herhangi bir element adını kullanabilirsiniz - bu yüzden tarayıcı, XML belgesinde hangi bağlantı elementlerinin çağrılacağını tahmin edemez.

XLink'in XML belgesinde bağlantı oluşturma nasıl kullanılacağına dair basit bir örnek aşağıda verilmiştir:

<?xml version="1.0" encoding="UTF-8"?>
<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="https://www.codew3c.com">CodeW3C.com'u Ziyaret Edin</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">W3C'yi Ziyaret Edin</homepage>
</homepages>

XLink fonksiyonlarına erişmemiz gerekiyorsa, XLink ad alanını bildirmemiz gerekir. XLink ad alanı: "http://www.w3.org/1999/xlink".

<homepage> elementindeki xlink:type ve xlink:href özellikleri bu XLink ad alanından gelir.

xlink:type="simple" ile basit bir "HTML benzeri" bağlantı oluşturulur (yani "Buraya tıklayarak başka bir yere gidin" anlamına gelir).

xlink:href özelliği, bağlanmak istediğiniz URL'yi belirtir.

XLink 实例

下面的 XML 文档包含 XLink 功能:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="雅舍谈吃">
  <description
  xlink:type="simple"
  xlink:href="/images/cswd.jpg"
  xlink:show="new">
  《雅舍谈吃》堪称潮汕美食的指南书,其中为美食爱好者和寻味者提供了所需要的指导和帮助;
  这本书又可说是潮汕美食的人文读本,书中介绍的是潮汕美食而非潮汕饮食,充分地将食物背后所隐藏的乡土文化、饮食习俗和历史细节挖掘展现出来。
  </description>
</book>
<book title="了不起的狐狸爸爸">
  <description
  xlink:type="simple"
  xlink:href="/images/mrfox.jpg"
  xlink:show="new">
  博吉斯、邦斯和比恩是你所能遇到的最卑鄙、最小气的人,他们憎恨狐狸先生,决定把他全家除掉。
  于是,这三个人拿着枪,阴险地等在狐狸先生的洞外……但狐狸先生自有对付他们的妙计!
  于是,一场智慧和力量的较量开始了……
  </description>
</book>
</bookstore>

例子解释:

  1. XLink 命名空间在文档顶部声明 (xmlns:xlink="http://www.w3.org/1999/xlink")
  2. xlink:type="simple" 创建一个简单的“类似 HTML”的链接
  3. xlink:href 属性指定要链接到的 URL(在本例中为图像)
  4. xlink:show="new" 指示链接应在新窗口中打开

XLink - 走得更远

在上面的例子中,我们演示了简单的 XLink。

如果我们将远程的位置作为资源而不是独立页面访问时,XLink 将变得更加有趣。

如果我们将 xlink:show 属性值设置为 "embed",则被链接的资源应在页面内内联处理。例如,如果您认为这可能是另一个 XML 文档,则可以构建 XML 文档的层次结构。

您还可以使用 xlink:actuate 属性指定资源应出现的时间。

XLink 属性参考

属性 值 描述 xlink:actuate onLoad onRequest other none 定义何时读取并显示被链接的资源: onLoad - 资源应该在文档加载时加载并显示 onRequest - Bağlantıya tıklanmadan önce kaynak okunmaz veya gösterilmez xlink:href URL Bağlantıya yönlendirilecek URL'yi belirler. xlink:show embed new replace other none Bağlantının nerede açılacağını belirler. Varsayılan "replace" olarak ayarlanmıştır. xlink:type simple extended locator arc resource title none Bağlantı türünü belirler.

XPointer

XPath
  • XPointer, bağlantıların XML belgelerinin belirli bölgesine yönlendirilmesini sağlar
  • XPointer, XML belgelerinde XPath ifadeleri kullanarak navigasyon sağlar
  • XPointer W3C tarafından tavsiye edilen bir standarttır

XPointer Tarayıcı Desteği

XPointer'ı destekleyen bir tarayıcı yok. Ancak, XPointer diğer XML dillerinde de kullanılır.

XPointer Örneği

Bu örnekte, XPointer ve XLink'i birlikte kullanarak, başka bir belgedeki belirli bir bölgeye işaret edeceğiz.

Öncelikle bu hedef XML belgesini (bağlantılı belgeyi) inceleyelim:

<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
  <picture url="https://dog.com/rottweiler.gif" />
  <history>Rottweiler'ın ataları muhtemelen Romalıydı
  araba köpekleri.....</history>
  <temperament>Özgüvenli, cesur, uyanık ve etkileyici, Rottweiler
  koruma yeteneği nedeniyle popüler bir seçimdir...</temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
  <picture url="https://dog.com/fcretriever.gif" />
  <history>En erken kullanımlardan biri, arama köpeklerinin
  balıkçıların suyun içinden balık çıkarmasını sağlamak için yardımcı oldu...</history>
  <temperament>The flat-coated retriever is a sweet, exuberant,
  oynayıp bulmayı seven canlı bir köpek...</temperament>
</dog>
</dogbreeds>

Lütfen, yukarıdaki XML belgesinin her bir elementinde id özelliği kullanıldığını unutmayın!

Bu nedenle, XPointer, tüm belgeye (XLink gibi) değil, belgenin belirli bir bölüme bağlanmanızı sağlar.

Sayfanın belirli bir bölüme bağlanmak istiyorsanız, xlink:href özelliğindeki URL'nin sonuna işaret (#) ve XPointer ifadesini ekleyin, örneğin:

xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"

Bu ifade, hedef belgedeki "Rottweiler" id değeri olan elementi referans alır.

xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))"。

XPointer, id'li elementlere kısa yol yöntemiyle bağlanmayı da sağlar. Id değerini doğrudan kullanabilirsiniz, örneğin:

xlink:href="https://dog.com/dogbreeds.xml#Rottweiler

Aşağıdaki XML belgesi, her köpeğin türü hakkında daha fazla bilgi içeren bağlantıları içerir:

<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
  <description>
  Anton benim favori köpemdir. Çok fazla..... kazandı
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  Rottweiler hakkında bir gerçek
  </fact>
</mydog>
<mydog>
  <description>
  Pluto dünyanın en tatlı köpeği......
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  Flat-coated Retriever hakkında Gerçek
  </fact>
</mydog>
</mydogs>