- 作者:xiaoxiao
- 发表时间:2020-12-23 10:38
- 来源:未知
起因
大家都知道什么是直接链接。不管是在浏览网页的时候带蓝色下划线的文本,或者是在各种书上见到的象以“见卷二 276 页”格式注释的那种稍旧的版本,这些链接都引导读者在大量的资料中寻找某个主题以及与之相关的信息。尽管直接链接帮助很大,但它始终一成不变,这是一个比较棘手的问题。我碰巧有一本难得的 George Orwell 1945 版的 Animal Farm,该书自然没有引用 1984 书中的内容,因为 1984 是他四年后写的。当然,您今天买到的任何新版本的 Animal Farm 都有一个简明的前言,列出了 Orwell 的所有著作,但我私下里一直希望能找到一种方法,使我那本破旧不堪、几乎散架的书也可以这样更新。
更新印刷资料的唯一途径就是重新印刷,这一点显而易见,但奇怪的是,联机内容的更新也必须如法炮制。唯一不同的是,对于 Web 而言,无需浪费额外的纸张。几乎每一个页面都需要进行打开、编辑、保存以及在 Web 上重新发布等操作,只有这样才能反映新内容。正是因为在许多旧文档中添加新链接很不方便,才使我想到反向链接这一概念。反向链接指新文档(目标文档)中的一条指令,它指出哪些旧文档(源文档)要引用新文档中的内容。
反向链接概念
了解反向链接的另一种方法是将其与对方付费电话进行比较。与常规电话(打电话者即付费者)不同,对方付费电话将打电话者和付费者分开,由接电话者支付费用。与此相似,常规链接在源文档内部进行声明和显示,而反向链接则在目标文档内部进行声明。换句话说,不象常规那样在文档 A 中使用指向文档 B 的指令,一个反向链接在文档 B 中使用一个让文档 A 指向自己的请求。整个反向链接的概念如图 1 所示。]
图 1. 直接链接对比反向链接
作为一种快捷方式,反向链接的声明可包含多个 href,用于同时列出所有目标文档。
图 2. 反向链接扩展语法
例如,下面的代码示例演示了 XSLT 中条件模板的用法,通过一行代码即可使四个相关语言参考 文档可以访问自己。
<link:from href1="../LangRef/xsl-if.xml" href2="../LangRef/xsl-choose.xml" href3="../LangRef/xsl-when.xml" href4="../LangRef/xsl-otherwise.xml"> Conditional templates </link:from>