?? 0703-0100.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0703-0100 -->
<HTML><HEAD><TITLE>XML中國論壇 - 初學進階 - 7.3.1 XPointer概述</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=31 rowSpan=2></TD>
<TD vAlign=center width="535">
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=43 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD width="535" ><!-- 正文內容 -->
<DIV class=pt10><B>7.3.1 XPointer概述</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>通過前面的介紹可以看到,XLink中xlink:href屬性的取值可以是一個文件,也可以引用文件內的某個特定位置。引用文件可使用URL,引用文件的特定部分則要使用XPointer,通常將它加到URL的結尾,更明確地表示目標資源。</P>
<P>我們知道,HTML中也支持文件內部定位,而且定位方法非常簡單,就是在目標文件中插入一個命名錨,然后用鏈接元素<A>的href屬性指定鏈接的位置即可。下面的例子是在一個文件內部建立鏈接,類似地,鏈接也可以建立在不同文件內部。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">……<BR><A name = "_loc1">Location
1</A><BR>…… <BR><A href = "#_loc1">Jump to Location
1</A><BR>……</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>但是,這種機制也存在著一些問題。首先,因為需要在開始文件和目標文件中明確定位,因而必須同時控制這兩個文件。如果這兩個文件由不同的人控制,或者在不同的站點上,可能會出現其中一個文件發生了修改,但沒有及時通知另一個文件的情況,這時很容易出現錯誤的鏈接或者鏈接失效。即使能夠同時控制目標文件和開始文件,也不是沒有可能只修改了其中一個,但忽略了另一個。因此,命名錨的機制增加了網頁維護的負擔和出錯的機率,只有在目標文件和開始文件是同一個文件時才相對有效一些。另外,鏈接庫提供了資源和鏈接分離的機制,使文件和鏈接更易于管理,插入命名錨顯然違背了這一原則,目標文件中僅僅為鏈接而建立的命名錨并沒有增加資源的內涵,反而降低了文件的可讀性。</P>
<P>由于XML是結構化的文件,這使得借助文件結構進行內部定位成為可能,此時無須對文件本身進行修改,這就是XPointer。XPointer用于在資源內定位片斷(fragement),它支持在XML文件中定位元素、屬性、字符串等內部結構,例如,我們可以定位到根元素或者當前元素的第5個子元素,也可以定位到文件中的某一個點或兩個點之間的區域。</P>
<P>XPointer基于XSL轉換中的XPath語言,并在其基礎上進行了擴展,包括:
<UL>
<LI>可以定位節點、點和區域;
<LI>通過字符串匹配定位資源片段;
<LI>在URI引用中定位資源片斷。 </LI></UL>
<P>由于XPointer的功能是文件內部定位,因此它可以使用在需要定位的任何地方,例如在可視化的XML編輯器中定位元素、屬性等。但人們經常利用XPointer描述XLink鏈接的目標資源,這也是把XPointer放在本章討論的原因。</P>
<P>考察下面的文件片斷,它表示了從文件的LINK元素到文件"http://www.xlinksample.com/xpointer.xml"中根元素的鏈接,其中"xpointer(/child::*[position()=1])"就是用于定位的XPointer。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><LINK<BR> xmlns:xlink =
"http://www.w3.org/TR/1999/xlink"<BR> xlink:type =
"simple"<BR> xlink:href =
"http://www.xlinksample.com/xpointer.xml<BR>
#xpointer(/child::*[position()=1]"><BR></LINK></TD></TR></TBODY></TABLE></CENTER></DIV>
<P> </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 + -