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