?? 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 + -