📄 0301-0309.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0301-0309 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 3.1.3.9 实体属性类型与参数实体</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=38 rowSpan=2></TD>
<TD vAlign=center width=672><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=38 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD width="672" ><!-- 正文内容 -->
<DIV class=pt10><B>3.1.3.9 实体属性类型与参数实体</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>在上一章中,我们介绍过实体的概念。相信你还能回忆起来,实体在XML中充当着宏或别名的角色。</P>
<P>实体最根本的作用是帮助你为一大段文本创建一个别名,这样,在文件的另一个位置需要引用这段文本时,仅需要指向它的别名就可以了。可想而知,这样一来,用于重新输入这段文本的大量时间就被节约下来了。它还意味着一旦需要修改,仅需要在一个地方作改动,就完成了全局的改动。</P>
<P>我们还提到,实体分为一般实体和参数实体两种类型,它们都可以定义为内部的也可以用关键字SYSTEM定义为外部的。实体的定义必须出现在引用之前,而且要注意正确嵌套,不能出现循环引用的情况。在DTD中,这两种类型的实体都得到了广泛的应用。
<UL>
<LI><STRONG>实体属性类型</STRONG> </LI></UL>
<BLOCKQUOTE>
<P>实体类型的属性值属于一般实体,如前所述,它的定义方式是:</P></BLOCKQUOTE>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!ENTITY 实体名
"实体内容"></TD></TR></TBODY></TABLE></CENTER></DIV>
<BLOCKQUOTE>
<P>或利用SYSTEM定义外部实体,方式为:</P></BLOCKQUOTE>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!ENTITY 实体名 SYSTEM
"外部文件名"></TD></TR></TBODY></TABLE></CENTER></DIV>
<BLOCKQUOTE>
<P>引用方式为:</P></BLOCKQUOTE>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">&实体名;</TD></TR></TBODY></TABLE></CENTER></DIV>
<BLOCKQUOTE>
<P>使用关键字ENTITY,则声明一个属性是实体类型,它的取值为已定义的实体。请看下面例子:</P></BLOCKQUOTE>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><?xml version = "1.0"
<BR> encoding="GB2312"
<BR> standalone =
"yes"?><BR><!DOCTYPE 文件[<BR> <!ELEMENT 文件
ANY><BR> <!ELEMENT 电影
EMPTY><BR> <!ATTLIST 电影 来源 ENTITY
#REQUIRED><BR> <!ENTITY BladeRunner SYSTEM
"dvds/BR/br.mov"><BR>
]><BR><BR><文件><BR> <电影 来源 =
"&BladeRunner;"><BR></文件></TD></TR></TBODY></TABLE></CENTER></DIV>
<UL>
<LI><STRONG>参数实体</STRONG> </LI></UL>
<BLOCKQUOTE>
<P>参数实体专门用在DTD中。定义方式是:</P></BLOCKQUOTE>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!ENTITY % 实体名
"实体内容"></TD></TR></TBODY></TABLE></CENTER></DIV>
<BLOCKQUOTE>
<P>或:</P></BLOCKQUOTE>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!ENTITY % 实体名 SYSTEM
"外部文件名"></TD></TR></TBODY></TABLE></CENTER></DIV>
<BLOCKQUOTE>
<P>引用方式为:</P></BLOCKQUOTE>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%">%实体名;</TD></TR></TBODY></TABLE></CENTER></DIV>
<BLOCKQUOTE>
<P>使用参数实体,可以方便元素和属性的声明。例如:</P></BLOCKQUOTE>
<DIV align=center>
<CENTER>
<TABLE width="80%" border=1>
<TBODY>
<TR>
<TD width="100%"><!ENTITY % TAG_NAMES "姓名 | EMAIL | 电话 |
地址"><BR><!ELEMENT 个人联系信息 (%TAG_NAMES; |
生日)><BR><!ELEMENT 客户联系信息 (%TAG_NAMES; |
公司名)></TD></TR></TBODY></TABLE></CENTER></DIV>
<P>最后提醒大家注意,不要以为实体属性类型的定义与DTD有关,所以它使用的就是参数实体。参数实体只能在DTD中使用,而对于任何元素属性值的指定(除了缺省值外),都是在XML文件正文中进行的,因此实体属性值仍属于一般实体。</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 + -