📄 0704-0000.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0704-0000 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 7.4 XML Base</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=40 rowSpan=2></TD>
<TD vAlign=center >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=36 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD><!-- 正文内容 -->
<DIV class=pt10><B>7.4 XML Base</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>在HTML链接中,当指定链接的相对路径时,基础路径一般是当前路径,但人们可以用BASE元素显式指定相对路径的基路径,在进行路径解析时,浏览器将BASE指定的路径与相对路径连接起来,形成资源的绝对路径。例如:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">……<BR><BASE href =
"http://www.htmllink.com/"><BR>……<BR><A href =
"student.htm">Student
List</A><BR>……</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>当链接Student List激活时,将显示资源"http://www.htmllink.com/student.htm"。</P>
<P>在XML链接中,可以发现实现相同的功能的类似机制,这就是XML Base,简称为XBase。但是XML
Base不仅限于XML链接领域,它还可以用于指定相对URI的其他应用。</P>
<P>XML
Base的指定是通过元素的xml:base属性指定的,前缀xml是用于表示命名空间http://www.w3.org/XML/1998/namespace,类似地,可以用其他前缀代替该命名空间,但考虑到文档的可读性,不提倡这样做。XML
Base的作用范围是包括其所有后代节点的整个元素,除非在后代元素指定了新的XML Base。</P>
<P>作为一个有效的(validated)XML文件,xml:base属性应该在DTD中声明。下面是一个可能的DTD声明。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!ELEMENT BOOK ANY><BR><!ATTLIST BOOK
xml:base CDATA #IMPLIED……></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>下面是一个利用上面的DTD定义的元素实例。</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><BOOK xml:base =
"http://www.xml.net.cn/book/"><BR>XML初学进阶<BR>……<BR><CHAPTERxml:base
=
"http://www.xml.net.cn/book/chapters/"><BR>……</CHAPTER><BR>……<BR></BOOK></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>在上面的例子中,BOOK元素内的CHAPTER子元素的XML
Base是"http://www.xml.net.cn/book/chapters/",而在BOOK元素的其他地方,无论是CHAPTER元素前后,XML
Base仍然是"http://www.xml.net.cn/book/"。此时BOOK元素的xml:base作用范围出现了一个洞,这与许多程序设计语言中非局部变量的作用范围是一致的。<BR><BR>由于xml:base是作为元素的属性存在的,作用范围是整个元素,而一个格式良好的XML文件的元素不能交叉,因此xml:base的作用范围也不会出现交叉。<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 + -