XML 教程

XML 教程 XML 简介 XML 用途 XML 树结构 XML 语法 XML 元素 XML 属性 XML 命名空间 XML Display XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML Schema XML 服务器 XML 实例 XML 测验

XML AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 实例

XML DOM

DOM 简介 DOM 节点 DOM 访问节点 DOM 节点信息 DOM 节点列表 DOM 节点遍历 DOM 节点导航 DOM 获取节点 DOM 更改节点 DOM 删除节点 DOM 替换节点 DOM 创建节点 DOM 添加节点 DOM 克隆节点 DOM 实例

XPath 教程

XPath 简介 XPath 节点 XPath 语法 XPath 轴(Axes) XPath 运算符 XPath 实例

XSLT 教程

XSLT 简介 XSL 语言 XSLT 转换 XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT 客户端 XSLT 服务端 XSLT 编辑 XML XSLT 实例

XQuery 教程

XQuery 简介 XQuery 实例 XQuery FLWOR 表达式 XQuery FLWOR + HTML XQuery 术语 XQuery 语法 XQuery 添加元素和属性 XQuery 选择和过滤 XQuery 函数

XML DTD

DTD 简介 DTD 构建模块 DTD 元素 DTD 属性 DTD 元素 vs. 属性 DTD 实体 DTD 实例

XSD Schema

XSD 简介 XSD How To XSD <schema> XSD 元素 XSD 属性 XSD 限制

XSD Complex

XSD 复杂元素 XSD 空元素 XSD 仅限元素 XSD 纯文本元素 XSD 混合 XSD 指示器 XSD <any> XSD <anyAttribute> XSD 替换 XSD 实例

XSD 数据类型

XSD 字符串 XSD 日期 XSD 数值 XSD 杂项 XSD 参考手册

Web Services

XML Services 简介 XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM 节点类型 DOM 节点 DOM NodeList DOM NamedNodeMap DOM 文档 DOM 元素 DOM 属性 DOM 文本 DOM CDATA DOM 注释 DOM XMLHttpRequest DOM 解析器 XSLT 元素 XSLT/XPath 函数


XML、XLink 和 XPointer

XLink 用于在 XML 文档中创建超链接。


XPath
  • XLink 用于在 XML 文档中创建超链接
  • XML 文档中的任何元素都可以充当链接
  • 使用 XLink,可以在链接文件之外定义链接
  • XLink 是 W3C 推荐标准

XLink 浏览器支持

浏览器不支持 XML 文档中的 XLink。

但是,所有主流浏览器都支持 SVG 中的 XLinks


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.w3ccoo.com">访问 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-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:type="simple" 创建一个简单的 "HTML-like" 链接
  • xlink:href 属性指定要链接到的 URL(在本例中为图像)
  • xlink:show="new" 指定链接应在新窗口中打开


XLink - 更进一步

在上面的示例中,我们演示了简单的 XLink。 将远程位置作为资源而不是独立页面访问时,XLink 变得越来越有趣。

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

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


XLink 属性参考

属性 描述
xlink:actuate onLoad
onRequest
other
none
定义何时读取和显示链接资源:
  • onLoad - 资源应在文档加载时加载并显示
  • onRequest - 在点击链接之前不会读取或显示资源
xlink:href URL 指定要链接到的 URL
xlink:show embed
new
replace
other
none
指定打开链接的位置。 默认为 "replace"
xlink:type simple
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="https://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="https://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 属性!

因此,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>
  Anton is my favorite dog. He has won a lot of.....
  </description>
  <fact xlink:type="simple" xlink:href="https://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="https://dog.com/dogbreeds.xml#FCRetriever">
  Fact about flat-coated Retriever
  </fact>
</mydog>

</mydogs>