XLink(XML Linking Language,XML链接语言)定义一文档如何与另一文档的链接。它允许在XML文档中插入元素以创建和描述资源间的链接,关联元数据,以及链接外部文档。其规范部分类似于HTML中的超链接,但是XLink比HTML中的链接能力更强,提供先进的行为特征使得超链接更加灵活。XLink可以链接多个目标、角色、资源以及元素反馈。
XLink W3C推荐标准将链接定义为“资源或资源的部分间的明确表达出来的关系”。该关系通过一个符合XLink的XML元素而明确表达出来。使用XLink,XML作者不但可以链接外部文档,元素之间也可以链接,它们之间的关系也能链接。符合XLink的链接可能简单也可能复杂。1
链接对于Internet中每台汁算机上的数据信息,如果都能够被方便地识别、定址及获取,那对于用户来说将十分便利。链接就是用来在Internet上做到这些的规范定义。可以将链接理解为从源节点到终节点之间的一个资源连接。
链接具有如以下特性。
1.一个链接可以有一个、两个甚至是很多个终节点,而每—个终节点都可以指向不同的资源。
2.一个链接并不一定要有方向,它也可以是双向的。
3.链接的终节点可以是某一完整的资源,也可以是资源内部的某一部分。
4.链接点的表现方式根据链接资源的形式而定。
由于Intemet的广泛使用,大部分的用户都熟悉超文本链接的基本观念,亦即“一个链接具有两个端点及一个方向,两个端点通常称为Anchor:这个链接可以从一个起点连到任何一个网路资源的目标点,这些链接可能是一张图片、一卷影片、一段声音、一段程序、一篇HTML的文件或其中的元素等”。但是,HTML链接具有局限性,这些局限性主要体现在以下几点。
1.HTML链接内嵌在源文档里
这个限制防止在标记为不能编辑的文档之外建立链接。URL通常只限于指向单一文档,否则,就需要手工在目标文件中插入命名的定位符。如果对链接的文档没有写访问权,那么就无法实现链接的建立。
2.HTML链接只允许在一个方向浏览
该链接是单方向的。用来链接的文档知道它正与哪个资源进行链接,但反过来则不行。
3.HTML链接只能链接两个资源
通过HTML链接,只有目标窗口可以被指定,浏览器将根据它当前的状态做出不同的反应。例如,如果一个带有明确名称的窗口已经打开,它将覆盖内容;否则,它将创建新窗口。
4.HTML链接不保留文档之间的历史或关系内容
尽管浏览器可以跟踪浏览一系列义档的路径,但这种跟踪是很不可靠的。从HTML内部,没有任何方法知道访问者是从哪里来的。
除了在HTML中可以使用链接之外,在XML语言中也可以使用链接。通过链接,可以把XML功能扩展到外部资源上,例如其他XML文档、HTML文档甚至图像。这样可以通过运用链接定义相似文档之间的关系,确定浏览文档的顺序,甚至在一个XML文档中嵌入非XML内容。
可扩展的链接语言(XLL)就是专门用来为XML文档设置链接的。XLL的链接与HTML链接相似,只是在功能是更强大、更具有灵活性。
使用XLL可以获得文档间的更强有力的链接。它是专门为XML文档设计的,当然有些部分也可以与HTML文档一起使用。XLL可以实现使用HTML的基于URL超文本链接和定位可获得的任何功能。除此之外,它还支持多方位的链接,即以多个方向同时进行链接。任何元素都可以成为一个链接,甚至不需要将链接保存在与链接文档相同的文件中。
XLL中的XLink为传统的HTML链接提供了一个强大的替代功能。HTML链接可以建立从一个源点向一个终点的单向链接,而XLink则可以建立以下链接。
1.创建双向链接。
2.在外部文档间建立链接。
3.改变链接的行为,以便在页面加载时进行触发。
4.确定链接的内容如何显示。
在HTML中,链接是用标记来定义的。而在XML中,任何一个元素都可以成为链接源。包括链接的元素称作链接元素。
在加入一个XLink之前,包含XLink的XML文档必须同时包含一个指向XLink命名空间的引用。代码如下所示:
为了方便起见,通常使用xlink作为引用这个命名空间的前缀。2
简单链接在HTML中,元素表示链接,Web浏览器可以理解这个元素的含义并相应地对链接进行显示。而在XML中,可以对XML文档的任意元素添加链接。
简单链接非常类似于HTML的链接,但是简单链接比在HTML中使用标记创建的链接要简单。
简单链接把一个源文档中的元素指向目标文档,是源文档和目标文档之间的单向链接。简单链接是内联链接,内联链接是元素的一部分,可以连接到一个方向。简单链接只有一个标示要链接到的目标的源标示符或定位器。另外,简单链接是扩展链接的子集。
声明简单链接时,可以使用以下属性。
(1) xlink:type
对于简单链接,该属性的值总是simple。
(2) xlink:href
用来指定链接的目标,设置的属性值为链接的目标URI。
(3) xlink:role
指定给应用程序提供链接的补充说明的方法。使用XLink的应用程序可以通过查阅此属性来得到一个链接角色的信息。
(4) xlink:title
可以指定一个给用户提供信息的标签。当role属性为系统和应用程序提供信息时,此属性为用户提供辅助的信息。
(5) xlink:show
该属性定义了如何向用户显示目标内存。常取以下3个值。
1.new:链接到的目标内容应该显示在独立的环境中(对于浏览器,应该是新的浏览器窗口)。将xlink:show属性设置为new,这与HTML中target=“_blank”的意思是一样的。
2.replace:链接到的目标内容替换原来环境中的源内容(对于浏览器,这是超链接的默认方式)。
3.embedded:链接到的目标内容应该嵌入源文档的链接位置,将源文档中定义的链接替换掉。选择embedded与在HTML页面中嵌入一张图片化常相似。
xlink:show属性其他可能的值还包括other和none。other值的意思是使链接按照具体的实现进行动作,并表示它应该在链接中寻找其他信息来表明它该如何动作。none值也是将链接的动作留给具体实现来决定,但它并不表示在链接内行何种暗示。
(6) xlink:actuate
该属性定义了何时触发链接。它可以取以下两个值。
1.onRequest:用户必须采取某些操作才能够触发链接。它类似于HTML超链接的工作方式,用户必须单击链接的文本才能够激活链接。
2.onLoad:加载源文档时,链接将自动激活。当xlink:show属性为embedded时,该属性最有用,但是当xlink:show为new时,也可以使用该属性。2
本词条内容贡献者为:
李嘉骞 - 博士 - 同济大学