📄 0203-0300.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0203-0300 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 2.3.3 实体的使用方式</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 rowSpan=2 width="45"></TD>
<TD vAlign=center width="568" >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD rowSpan=2 width="60"></TD>
</TR>
<TR vAlign=top>
<TD width="568" ><!-- 正文内容 -->
<DIV class=pt10><B>2.3.3 实体的使用方式</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>实体的使用包括两部分:实体声明和实体引用。
<OL>
<LI>实体声明 </LI></OL>
<BLOCKQUOTE>
<P>对于实体的声明应该放在文件类型DOCTYPE中。DOCTYPE一般放在文件头(即XML声明和DTD)之后,XML元素之前。这样一来,XML文件就变为下面的形式:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><?xml version="1.0"?><BR><!DOCTYPE
文件根元素名 [ <BR>
实体声明部分<BR>]><BR><文件根元素名><BR>
具体数据内容<BR></文件根元素名></TD></TR></TBODY></TABLE></CENTER></DIV></BLOCKQUOTE>
<OL start=2>
<LI>实体引用 </LI></OL>
<BLOCKQUOTE>
<P>说到实体引用,大家可能想起前面我们曾用“&lt;”代表字符“〈”。不错,这就是一个实体引用。</P>
<P>简而言之,实体引用指的是引用一个在实体声明中已经声明过的一个实体。实体引用的形式很简单:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">&实体名;</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>不过,实体引用有以下几点规则一定要注意:
<UL>
<LI>在引用XML实体之前,必须已经在XML文件中对此实体进行过声明;
<LI>在实体引用中不能出现空格。也就是说,& lettersign;和&letterhead ;的用法都会引起错误。
<LI>尽管在一个实体中可以再引用其它实体,但是不能出现循环引用。也就是说,一个实体不能引用它自己;同样,也不能出现实体A引用实体B,然后实体B再反过来引用实体A的情况。
<LI>实体引用不能在DOCTYPE声明中出现。
<LI>实体引用的文本必须是形式良好的XML。 </LI></UL>
<P>同样,参数实体的引用与一般实体的引用大同小异,只是要把实体前的符号&换为%就可以了,形式是:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">%实体名;</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>下面,我们就来看一个完整的实体声明和实体引用的例子:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><?xml version="1.0"?><BR><!DOCTYPE 联系人列表
[ <BR> <!ENTITY A公司地址
“北京市五街1234号”><BR> <!ENTITY B公司地址
“上海南京路9876号”〉<BR>]>
<P><联系人列表><BR>
<联系人><BR>
<姓名>张三</姓名><BR>
<公司>>A公司</公司>><BR>
<地址>&A公司地址</地址><BR>
</联系人><BR>
<联系人><BR>
<姓名gt;李四</姓名><BR>
<公司>B公司</公司><BR>
<地址>&B公司地址〈/地址〉<BR>
</联系人><BR>
<联系人><BR>
<姓名>王五</姓名>><BR>
<公司>B公司</公司><BR>
<地址>&B公司地址〈/地址〉<BR>
</联系人><BR></联系人列表></P></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>从这个例子中可以看出,一旦哪个公司搬家了,只须改变实体声明中有关该公司的地址,所有这个公司的联系人的地址也就都改过来了,所做的重复劳动少多了!</P>
<P>此外,实体引用不仅可以出现在字符数据中,还可以出现在标记的属性中。例如下面这个例子:</P>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><联系人 公司=“B公司” 地址=“&B公司地址;”>
</TD></TR></TBODY></TABLE></CENTER></DIV>
<P>如果在属性中出现实体引用,不但要遵守前面所述的实体引用的种种规则,还要注意以下两点:
<UL>
<LI>在标记属性中不能引用一个外部实体。
<LI>引用的文本中不能出现字符“<”,否则替换后就不再是一个“形式良好的”XML文件了。 </LI></UL></BLOCKQUOTE>
<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 + -