最新的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>