XML XLink
-
定义和使用
- XLink 用于在 XML 文档中创建超链接
- XML 文档中的任何元素都可以充当链接
- 使用 XLink,可以在链接文件之外定义链接
- XLink 是 W3C 建议
XLink 用于在 XML 文档中创建超链接。
-
-
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="https://www.w3schools.com">参观W3Schools</homepage> <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit 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 功能:下面是一个简单的示例,说明如何使用 XLink 在 XML 文档中创建链接:<?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"> 蝴蝶教程是一个比较全的IT技术教程网站…… </description> </book> <book title="XQuery Kick Start"> <description xlink:type="simple" xlink:href="/images/XQuery.gif" xlink:show="new"> XQuery Kick Start提供了简要的介绍符合XQuery标准... </description> </book> </bookstore>
示例说明:XLink命名空间在文档顶部声明(xmlns:xlink =“http://www.w3.org/1999/xlink”)xlink:type="simple" 创建一个简单的 “类似于HTML” 的链接xlink:href 属性指定要链接的URL(在本例中为图像)xlink:show="new" 指定链接应在新窗口中打开 -
XLink-更进一步
在上面的示例中,我们演示了简单的 XLink。 当访问远程位置作为资源而不是独立页面时,XLink 变得越来越有趣。如果将 xlink:show 属性的值设置为 “embed”,则应在页面内内联处理链接的资源。 当您认为这可能是另一个 XML 文档时,可以例如构建 XML 文档的层次结构。您还可以使用 xlink:actuate 属性指定何时显示资源。 -
XLink属性参考
属性 值 描述 xlink:actuate onLoadonRequestothernone定义何时读取和显示链接的资源:- onLoad-资源应在文档加载时加载并显示
- onRequest-单击链接之前未读取或显示资源
xlink:href URL 指定链接到的URL xlink:show embednewreplaceothernone指定在何处打开链接。 默认为“替换” xlink:type simpleextendedlocatorarcresourcetitlenone指定链接的类型 -
XPointer
- XPointer 允许链接指向XML文档的特定部分
- XPointer 使用XPath表达式在XML文档中导航
- XPointer 是W3C建议
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>罗威纳犬的祖先可能是罗马人 over狗...</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>