分享
 
 
 

非常详细的XLink1.0学习笔记

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

1、XLink的规格说明书是用来描述和创建在XML文档中资源之间的链接语言规范,目前W3C的此工作组由于工作已经完成所以已经解散了。这个规范定义了两种链接声明类型,即简单型的(类型为simple的)和扩展型的(类型为extended),其实简单型的链接是扩展型的链接的便于书写的简单形式。

2、要声明一个XML文档的链接,必须在这个所声明的链接的元素中定义这个命名空间:http://www.chinaitlab.com。然后增加相关的属性就可以了。

例如:

<Authors xmlns:xlink= “http://www.chinaitlab.com”

xlink:type= “simple”

xlink:href= “authors.xml”

xlink:role= “author list”

xlink:title= “Author list for example”

xlink:show= “replace”

xlink:actuate= “onRequest” /

注意:如果你要在自己的元素中增加XLink属性并且是使用DTD来定义的那么就需要在<!ATTLIST中定义链接元素的这些属性,否则,验证处理器将不能识别xlink:*。对于上面的例子,在DTD中应该为如下这样的形式:

<!ELEMENT Authors EMPTY

<!ATTRLIST Authors

xmlns:xlink CDATA

#FIXED “http://www.chinaitlab.com”

xlink:type

(simple|extended|locator|arc|resource) “simple”

xlink:href

CDATA

#REQUIRED

xlink:role

CDATA

#IMPLIED

xlink:title

CDATA

#IMPLIED

xlink:show

(new|replace|embed|other|none) “replace”

xlink:actuate (onLoad|onRequest|other|none) “onRequest”

3、扩展链接也有几种类型,其实是指arc的类型:inbound、outbound、third-party;outbound(输出)是指链接的起点是本地资源(local resource),而链接的终点是远程资源(remote resource),inbound(输入)是指链接的起点资源是远程资源,而终点资源是本地资源,third-party是指起点和终点资源都是远程资源。这里本地资源是指通过具体的值来指定的资源,而远程资源是指通过引用也就是URI来指定的资源,即使此资源是在同一个XML文档中,如果是通过URI来指定的也叫远程资源。

4、在simple、extended、locator、arc、resource、title这6类元素的属性中只有type属性是必须需要的,还有就是locator元素的href属性是必须的,其他所有的属性都是可选的。

5、声明为扩展链接的链接可以有locator、resource、arc、title子元素,locator用于定义远程资源,resource用于定义本地资源,arc用于定义资源之间的方向弧,title用于定义一些自然语言的描述。

6、xlink:type:用于指定链接元素的类型,其取值可以是:

simple:表示元素是简单型的链接

extended:表示是扩展链接

locator:表示是远程资源

resource:表示是本地资源

arc:表示是链接资源的弧

title:表示是自然语言的链接描述

7、xlink:show用于定义目标内容如何显示给用户,其取值可以是:

new:目标内容以一个单独的上下文显示(在浏览器中,可能是一个新的浏览器窗口)。

replace:目标内容应当取代原始上下文中的内容(在浏览其中这是通常的链接行为)。

embed:这个内容嵌入到文档中的链接位置(代替链接表示本身)。

other:这个链接没有指定被访问的行为。如果是这个值时,那么这个文档就会包含有关这个链接的其他提示,例如其他描述这个链接目的的标记(文档的专用类型)。

none:这个链接没有指定被访问的行为。这是,这个文档不会包含有关如何访问这个链接的其他提示。

8、xlink:actuate属性定义什么时候触发这个链接,其取值如下:

onRequest:用户必须采取动作触发这个链接,这是类似于HTML中超链接的方式,用户必须点击链接文本来激活这个链接。

onLoad:这个链接在载入文档时自动激活。在xlink:show属性为embed时非常有用,而且在它为new时也有一些应用(例如:打开源文档时,会自动打开一个另外的上下文窗口,包含了链接的终点资源)。

other:这个链接没有指定激活链接时的行为。如果actuate属性为这个值时,那么文档就会包含如何激活这个链接的其他提示。

none:这个链接没有指定激活这个链接时的行为。这是,这个文档不回包含如何激活这个链接的其他提示。

9、resource元素用于定义本地资源,这个元素包含xlink:type, xlink:role, xlink:title, xlink:label四个属性,其中xlink:type的值是resource。

10、locator元素用于定义远程资源,这个元素包含xlink:type, xlink:href, xlink:role, xlink:title, xlink:label五个属性,其中xlink:type的值是locator, 并且href定义了一个用于找到远程资源的URI,注意如果处理器能够理解XPointer引用,那么这个URI就可以包含一个对于XML文档子集的XPointer引用。

11、arc元素定义了资源间的链接关系,其属性包括xlink:type, xlink:arcrole, xlink:title, xlink:show, xlink:actuate; xlink:from, xlink:to。其中type的值是arc,而xlink:from和xlink:to两个属性的值是和resource和locator元素中的xlink:label的值匹配的。

12、如果在一个xlink的链接中没有包含任何arc元素,那么xlink就会假设每个locator和resource元素之间都将有一个隐式的arc元素,所以只有显式的定义arc才有意义。

13、如果有多个arc元素都定义了相同的起点资源和终点资源,那么只有第一个会被解析,并且这在某些解析其中是不允许的,所以最好不要定义重复的arc元素。

14、一个链接应用为了从起点资源找到终点资源,它需要定位起点资源的位子和链接的位置,这对于outbound的arc来说不是个问题,因为起点资源不是链接元素本身就是其子元素,但对于inbound和third-party类型的arc来说,就是一个问题了,为了解决这个问题,xlink提供了一种链接库的机制,就是将所有的链接定义在一起(一般一个链接文档中,这样便于管理链接,而且这个文档必须是XML的),并且提供一种arc,该arc的终点资源就是xlink的链接库,并且show属性必须忽略,但是这个arc的arcrole必须是:http://www.chinaitlab.com/properties/linkbase,例如:

我们有如下链接库menulink.xml:

<linkbase xmlns:xlink= “http://www.chinaitlab.com”

xlink:type= “extended”

xlink:title= “See other parts of menu”

<endpoint xlink:type= “locator”

xlink:href=”menu1.xml”

xlink:label=”menuPage1”

xlink:title=”Beverages” /

<endpoint xlink:type= “locator”

xlink:href=”menu2.xml”

xlink:label=”menuPage2”

xlink:title=”Appetizers” /

<endpoint xlink:type= “locator”

xlink:href=”menu3.xml”

xlink:label=”menuPage3”

xlink:title=”Sandwiches” /

<endpoint xlink:type= “locator”

xlink:href=”menu4.xml”

xlink:label=”menuPage4”

xlink:title=”Desserts” /

<link

xlink:type= “arc”

xlink:from= “menuPage1”

xlink:to= “menuPage2”

xlink:show= “replace”

xlink:actuate= “onRequest”/

<link

xlink:type= “arc”

xlink:from= “menuPage2”

xlink:to= “menuPage3”

xlink:show= “replace”

xlink:actuate= “onRequest”/

<link

xlink:type= “arc”

xlink:from= “menuPage3”

xlink:to= “menuPage4”

xlink:show= “replace”

xlink:actuate= “onRequest”/

</linkbase

然后,我们有如下的menu1.xml(可以应用于所有的菜单页面的相同通用格式:)

<menupage xmlns:xlink= “http://www.chinaitlab.com”

<linkbase xlink:type=”extended”

<linkbaseStart

xlink:type= “resource”

xlink:label= “linkbaseStart” /

<linkbaseEnd

xlink:type= “locator”

xlink:href= “menulink.xml”

xlink:label= “linkbaseEnd” /

<loadLinkbase

xlink:type= “arc”

xlink:arcrole= “http://www.chinaitlab.com/properties/linkbase”

xlink:from= “linkbaseStart”

xlink:to= “linkbaseEnd”

xlink:actuate= “onLoad” /

</linkbase

<menuitem

<nameCoffee</name

<price$0.99</price

</menuitem

<menuitem

<nameTea</name

&

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有