XLink介绍
2000-03-02· 蔡依纯 译·中文XML
如果在这个世界上每部电脑中的每个资料块都能够被识别、定址及连结,那将是多么令人振奋的事呢!Xink就是说明如何在网络上做到这点的规格文件。
HTML的连结
由於WWW的风行,大部分的人都熟悉超文字连结的基本观念,亦即是“一个连结具有两个端点及一个方向,两个端点我们通常称为Anchor。这个连结可以从一个起点连到任何一个网路资源的目标点,这些连结可能是一张图片,一卷影片,一段声音,一个程式,一篇HTML的文件,或其中的元素等等”。
假如你常使用浏览器,你一定会知道,当你在连结上按滑鼠的右键时,就会出现一个选单,而其中一个选择是“在新视窗开启”。
在HTML中,对於这些连结都是用一个「Anchor」的标志所做成。
如果你是撰写HTML的高手,你一定知道在head标志里有个特别的标志叫做link,它提供了多种的连结功能:比方像是连结到样式表(新的浏览器会提供使用者多一点选择,让其自行选择使用哪一个样式表),或是连结到有音乐的地方(当下载完毕後可自动地播放),抑或是连结到另一个网页(可使浏览器预先载入该网页,以省去等待的时间)等。
以上所描述的都是连结的功能,事实上,有很多其他的超文字连结功能是HTML没有办法做到的,即使如早期(1960年末至1970年初期)的超文字连结系统所提供的连结功能,HTML亦没办法做到。然而,HTML之所以会成功,是因为它使用最简单的方式去使用超连结,而且使用者并不 要特别的编辑器(Editor)便可制作网页。
多用途的连结!
有时当我们看到「连结」时,我们发现其实它看起并不像是连结,但事实上,为什么呢?许多的事物包括电子化地址、识别字、位址或是查询等,都可以有连结这个动作。当你想到两个资料间有“relationship”、“role”、“pointer”或是“has a”等关联性时,在XML(eXtensibleMarkupLanguage)中我们可以用「连结」的方法来加以标示。
读者们应有一个观念,在HTML4.0规格中,所定义的超文字连结标准,并不是就是连结的所有特性,所以在这里我们将对连结做更清楚的定义:
1.一个连结可以有一个、二个甚至是很多个ends,而每一个end都可以是指标,事实上连结本身可以很明确地指定是外部(externally)连结,因而连接到每一个end。
2.一个连结并不 一定要有方向,但它也可以有很多或是没有方向,除此之外,连结的方向不 要一定得从“context”到“part”才行。
3.连结的end可以是某一范围,不一定是要连结到整个resource或某一地方。
4.连结点的表现方式乃视连结资料的角色而定,「撷取」和「取代」只是可能性的行为之一。是故,使用者设定连结为撷取资料并取代画面只是连结功能的表现之一。
XML连结对我们有什么用呢?简言之,像是资料模型化、资料交换、超文字连结或是任何不同关系的资料型态上,都可以派上用场。
XLinks有一重要功能就是建立「topicmaps」,这是一种依据metadata连结到种种不同网路资源的方式。Topicmaps允许不同的资料有外在的注解(External Annotation)。因此,我们可以说Topicmaps是有结构性的metadata,而依据各特性关联主题,可以连结到不同的网路资源。
XLinks
XLink定义了几种常用的连结型态:Simple、Extended、Group和Document。
1.Simple的用法比较接近在HTML内a标志的用法(如下HTML的写法所示)。
2.Extended的用法包含arc和locator的元素,并允许各种种类的扩充连结。
3.Group和document的用法,是让群组连结到一些特别的文件。
以下我们将说明Simple的语法,有两种方法可以知道一个连结是否是Xlink:
1.直接使用simple字眼;
2.以xlink:type表示。
让我们来看看下面Simple的例子:
1.以HTML的写法如下:
2.以Xlink的写法:
同样一个连结,另一种Xlink也可以写成:
xmlns:xlink属性是一个名称 域(Namespaces)宣告的例子,而所谓的名称 域,是方便使用者同时使用数个文件型别宣告(Document TypeDeclaration)之机制,至於这样的做法,我们相信在未来之HTML版本中,也会朝这一方向努力。
也许我们觉得很奇怪,为什么这些arcs会接在一起,而形成extendedlink呢?有些人可能比较喜欢(图二)的写法,因为这种连结并没有“from”和“to”,只有href的地址。
在locator的定义中包含两个原性:href和role。href属性包含URL,role属性则包含了如何去使用连结的关键字。
Xlink扩展了URIs的使用,其中actuate和show对於Xlink来说是非常重要的属性,原因如下:
1.actuate的属性可以说明Link是自动地或人工地(user-command)追踪。
2.show的属性说明另一端的连结是 要显示一个新(new)的视窗,或是取代(replace)成目前的视窗,或是 要剖析的(若该连结连结到XML文件)。
对于HTML的高手来说,上述href属性的用法较不平常,这是因为含有查询条件的正确URL,而它的主要目的是查询文件。
这一种URL使用了一个很特别的语法,就是在URL之前放问号(?)来查询,许多指向资料库的连结都用这个技巧。
W3C正在发展中的Xpointer是一种特殊的查询,也是Xlink推展的一部份。Xpointer的语法是?xptr=加上XML PathExpression【像是id(phone2)】。从上面的例子中看来,id指到唯一识别字phone2。(这个跟xlink:arc的from和to的用意一样)。
XMLPathExpression可让我们以不同种类的标准来选择某一元素树状结构式(Elementtreeofstructure data)特殊分枝。
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=40345