XML XLink
XML 链接语言 (XLink)
Section titled “XML 链接语言 (XLink)”XLink 是一个 W3C 标准,它定义了用于在资源之间创建链接的属性,主要用于 XML 文档内部。其目标是提供比基本 HTML 链接更强大的链接能力。
什么是 XLink?
Section titled “什么是 XLink?”| XLink 允许在 XML 文档中创建超链接。 | XML 文档中的任何元素都可以通过使用 XLink 属性充当链接。 | 它支持简单的、单向的链接(类似于 HTML 的 <a> 标签)以及可以连接多个资源的更复杂的“扩展”链接。 | 链接可以潜在地在单独的文档(链接库)中定义,尽管此功能很少实现。 | XLink 是一个成熟的 W3C 推荐标准,但其实际应用受到限制。 |
|---|
重要提示: 尽管 XLink 是一个标准,但浏览器对任意 XML 文档中 XLink 的普遍支持实际上是不存在的。虽然浏览器为特定的 XML 词汇表(如 SVG(可伸缩矢量图形))支持此概念,但它们通常不会直接处理加载的普通 XML 文件中的 XLink 属性。
因此,虽然理解语法在概念上很有用,但在 Web 浏览器环境中依赖 XLink 来链接通用 XML 数据是不切实际的。
简单链接的 XLink 语法
Section titled “简单链接的 XLink 语法”与 HTML 专用的 <a> 元素不同,XML 使用命名空间和特定属性来表示任何元素上的链接。
这是一个演示简单 XLink 的示例,概念上类似于 HTML 链接:
<?xml version="1.0" encoding="UTF-8"?><!-- Declare the XLink namespace --><document xmlns:xlink="http://www.w3.org/1999/xlink">
<heading>Useful Links</heading>
<resource xlink:type="simple" xlink:href="https://www.w3.org/XML/" xlink:show="new"> Visit the W3C XML Page </resource>
<resource xlink:type="simple" xlink:href="/local/resource.xml" xlink:show="replace"> View Local Resource </resource>
</document>关键组成部分:
- 命名空间声明:
xmlns:xlink="http://www.w3.org/1999/xlink"使xlink:前缀可用,将其与官方的 XLink 命名空间 URI 关联起来。 xlink:type="simple": 将链接标识为从当前元素到单个远程资源的简单、单向超链接。xlink:href="URL": 指定目标 URI(要链接到的资源),类似于 HTML 的href属性。xlink:show(可选): 建议如何显示链接的资源。常用值:new:在新窗口/标签页中打开。replace:在当前窗口/标签页中加载资源(如果省略,为默认行为)。embed:将资源内容直接嵌入到当前文档中(很少支持)。none:应用程序应决定如何处理。
xlink:actuate(可选): 建议何时应遍历链接。onRequest:仅在用户激活时(例如,点击)遵循链接(默认)。onLoad:文档加载时自动遵循链接(simple链接很少支持)。none:应用程序应决定。
带有描述的 XLink 示例
Section titled “带有描述的 XLink 示例”这里,XLink 将描述与外部图像资源关联起来:
<?xml version="1.0" encoding="UTF-8"?><bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="Learning XML"> <description xlink:type="simple" xlink:href="/images/learning_xml_cover.jpg" xlink:show="new" xlink:actuate="onRequest"> A comprehensive guide to XML syntax, DTDs, Schemas, XPath, and XSLT. Click here for the cover image. </description> </book>
<book title="SVG Essentials"> <description xlink:type="simple" xlink:href="/images/svg_essentials_cover.gif" xlink:show="new" xlink:actuate="onRequest"> Learn how to create scalable vector graphics for the web using SVG. Click here for the cover image. </description> </book>
</bookstore>同样,虽然这是语法正确的 XLink,但典型的 Web 浏览器直接加载此 XML 文件时,很可能不会仅仅基于这些属性就使 <description> 元素成为可点击的链接。
扩展链接和实际用法
Section titled “扩展链接和实际用法”XLink 还定义了“扩展链接”,它可以将多个资源链接在一起,可能使用不同的角色(弧)将它们连接起来。这比简单链接更复杂,支持也更少。
在现代 Web 开发中,链接主要通过 HTML(<a> 标签)来处理。当处理 XML 数据时,更常见的方法是:
- 使用 JavaScript 解析 XML。
- 根据 XML 数据动态生成 HTML 元素(包括
<a>标签)(例如,从特定的 XML 元素或属性中提取 URL)。 - 在服务器或客户端使用 XSLT 将 XML 转换为 HTML,在输出中生成适当的
<a>标签。
XLink 主要在特定的 XML 应用领域(如 SVG 链接)或在非浏览器环境中(由自定义处理实现 XLink 规范)保持其相关性。