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