📄 0702-0204.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0702-0204 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 7.2.2.4 链接弧</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt9 {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt10 {
FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋体"
}
.TempOutline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.TempOutline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage0 {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage111 {
FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
</STYLE>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下为主体内容 -->
<div align="center">
<center>
<TABLE width="100%" border=0 style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD width=44 rowSpan=2></TD>
<TD vAlign=center width="514">
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=28 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD width="514" ><!-- 正文内容 -->
<DIV class=pt10><B>7.2.2.4 链接弧</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>链接弧(arc)用于表示扩展XML链接中资源之间的连接关系,它是扩展XML链接元素的子元素,xlink:type属性值为"arc",称之为链接弧元素。在用有向图描述扩展XML链接时,链接弧是连接资源的有向边,不过后面我们将要讲到,一个链接弧元素未必只表示一条有向边。在有向图中,随着结点个数的增加,其边的数目将指数级增加。因此在扩展XML链接中,随着资源的增加,连接的数量也会指数级增加。例如:如果一个扩展XML连接的资源由3个增加到4个,可能的连接数目将从9个上升到16个。</P>
<P>如果一个链接弧的起始资源在本地,而目标资源是远程的,那么这个链接弧称为出站(outbound)链接弧;反之,如果起始资源是远程的,而目标资源在本地,则称为入站(inbound)链接弧;如果起始资源和目标资源都不在本地,则称为第三方(third-party)链接弧。虽然没有作明确规定,但一般而言,一个链接一般只包含一类链接弧,因此可称为出站链接、入站链接或第三方链接。对HTML链接和简单XML链接而言,由于链接总是从链接元素到href代表的远程资源,因此都属于出站链接。扩展XML链接可以包括三种链接中的任意一种。</P>
<P>链接弧元素本身必须作为扩展XML链接元素的直接子元素,否则该元素将失去其链接意义。元素中可以包含任何内容,在一般情况下,这些内容不具有链接意义。链接弧元素中的属性可以有遍历属性(xlink:from和xlink:to)、行为属性(xlink:show和xlink:actuate)和语义属性(xlink:arcrole和xlink:title)。</P>
<P>xlink:from和xlink:to属性用于描述资源之间的连接,资源元素的标识通过其xlink:label属性识别。xlink:from定义了链接弧的起始资源,在有向图中是边的起点,xlink:to定义了链接弧的目标资源,在有向图中是边的终点。遍历属性的取值必须是资源元素(包括本地资源元素和远程资源元素)的xlink:label属性已经定义的值。总之,链接弧表示从xlink:from所代表的资源元素到xlink:to代表的资源元素之间的连接。由于xlink:from、xlink:to和xlink:label属性用于链接的遍历,因此这三个属性常被称为遍历属性(traversal
attributes)。</P>
<P>如果xlink:from和xlink:to的值对资源元素是唯一的,即只有一个资源元素的xlink:label属性具有xlink:from或xlink:to指定的值,那么这个链接弧只包括一个连接,在有向图中表现为一条边。如果xlink:from和xlink:to的值对资源元素不唯一,即有多个资源元素的xlink:label属性具有xlink:from或xlink:to属性值,那么这个链接弧则表示多个连接,在有向图中表现为多条边。例如,下面例子中,扩展XML链接元素EXTLINK包含一个本地资源RESOURCE元素、三个远程资源LOCATOR元素和两个CONNECTION元素,它表示课程、教师和学生的关系。RESOURCE和LOCATOR元素的xlink:label属性依次定义为"DataStructure"、"teacher"和"student",CONNECTION元素的xlink:from和xlink:to的值必须为上述三个值之一。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><EXTLINK><BR> <RESOURCE xlink:role =
"course" xlink:title = "计算机系课程:数据结构" xlink:label =
"DataStructure"><BR> 数据结构<BR>
</RESOURCE><BR> <LOCATOR xlink:href = "http://
www.xlinksample.com/teacher.xml" xlink:role = "teacher" xlink:title
= "老师:张三" xlink:label = "teacher"> <BR>
张三<BR> </LOCATOR><BR> <LOCATOR xlink:href =
"http:// www.xlinksample.com/StudentLi.xml" xlink:role = "student"
xlink:title = "学生:李四" xlink:label = "student"><BR>
李四<BR> </LOCATOR><BR> <LOCATOR xlink:href =
"http:// www.xlinksample.com/StudentWang.xml" xlink:role = "student"
xlink:title = "学生:王五" xlink:label = "student"> <BR>
王五<BR> </LOCATOR><BR> <CONNECTION xlink:from =
" teacher" xlink:to = " DataStructure" xlink:arcrole = "course"
xlink:title = "老师教授课程"><BR> 课程的授课老师安排<BR>
</CONNECTION><BR> <CONNECTION xlink:from = " teacher"
xlink:to = "student" xlink:arcrole = "teach" xlink:title =
"老师教授学生"><BR> 学生的授课老师安排<BR>
</CONNECTION><BR></EXTLINK></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>用有向图来表示上面的例子,可以看到第一个CONNECTION元素表示了一条有向边,而第二个CONNECTION元素表示了两条有向边,见下图。</P><FONT
face=宋体 size=3>
<P align=center>
<IMG
src="image/TU000000-0702-0204-01.gif" width="356" height="211"></FONT></P>
<P>xlink:from和xlink:to属性可以省略,这时表示该扩展XML链接元素包含的所有资源元素均参与到链接中。如果省略了xlink:from属性,那么该链接弧表示从所有资源元素到xlink:to代表的资源元素的连接;类似地,如果省略了xlink:to属性,则表示从xlink:from代表的资源元素到该扩展XML链接元素的所有资源元素的连接。如果xlink:from和xlink:to两个属性同时省去,则表示所有链接元素构成的全连接,其中包括了从每个链接元素到自身的链接。</P>
<P>链接弧元素的行为属性xlink:show和xlink:actuate的含义及取值与简单XML链接中的相应属性一样。语义属性xlink:arcrole和xlink:title则是用于描述相对于链接弧的起始资源而言,目标资源所具有的性质,我们可以将xlink:arcrole
理解为自然语言中的谓语,而链接弧起始资源是自然语言中的主语,目标资源是自然语言中的宾语,这样一个链接弧就可以对应于自然语言中的语句。对于同一个资源而言,它对不同的起始资源有不同的性质,因此一个资源在不同的链接弧中可以定义不同的语义属性。</P>
<P>最后需要注意的是:链接弧不能重复定义。也就是说,在同一个扩展XML链接中,不能定义多个链接弧元素,它们的xlink:from的值和xlink:to的取值都相同。<BR></P></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -