• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:24来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

可包含指向即将插入文档的附加数据的实体引用。进行正确性检查的XML 处理器在提交文档给最终应用程序以前或显示文件
以前,将把所有不同的实体引用结合为单一逻辑结构的文档。
不进行正确性检查的处理器可以但不一定插入外部对象;他们必须插入内部对象。
实体的主要目的在于保存如下内容:结构完整的XML,其他形式的文本或二进制数据。序进程和文档类型声明是它们所属文
档的基本元素的一部分。仅当XSL 样式单本身就是一个结构完整的XML 文档时,才能作为一个实体。组成XSL 样式单的实体
并不是应用该样式单的XML 文档的组成实体之一。CSS 样式单根本就不是一个实体。
大多数实体具有一个可以引用的名。唯一的例外是包含XML 文档的主文件与文档实体(与数据库记录、CGI 程序的输出结果
或其他数据相对比,文档实体也不一定是文件)。文档实体无论采取何种结构,都是一种存储单元,用于储存XML 声明、文
档类型声明(如果有)和基本元素。因此每个XML 文档至少拥有一个实体。
有两种类型的实体:内部实体和外部实体。完全在文档实体内部定义的实体称为内部实体。文档本身就是这样的实体,所以
所有的XML 文档至少有一个内部实体。
相反,经由URL 定位的资源中获取的数据称为外部实体。主文档仅包含一个实际引用数据位置的URL。在HTML 中,包含于
<HTML>和</HTML>标记之间的文档本身是内部实体时,而IMG 元素(实际的图像数据)代表外部实体。
XML 实用大全
第 251 页
实体分为两类:可析和不可析实体。可析实体包含结构完整的XML 文本。不可析实体包含二进制数据或非XML 文本(类似电
子邮件信息)。如果从本质上说,当前大多数XML 处理器不能很好地支持(如果不是完全支持的话)不可析实体,本章所关
注的是可析实体。
第11 章,非XML 数据和不可析对象的嵌套。
通过实体引用,可把来源于多个实体的数据合并在一起构成一个单一的文档。通用实体引用把数据并入到文档内容中。参数
实体引用把声明并入到文档的DTD 中。实中&lt;、&gt;、&apos;、&quote;、&amp;是预定义的体引用,分别指的是文
本实体<、>、’、”、&符号。然而也可在文档DTD 中定义新的实体。
XML 实用大全
第 252 页
.2 内部通用实体
内部通用实体引用可看作经常使用的文本或强制格式文本的缩写。DTD 中的<!ENTITY>标记定义缩写,并且该缩写就代替了
文本。例如,可在DTD 中简单地把页脚定义为实体footer,然后每页只需键入&footer;,而勿需在每页底部键入相同的页
脚。此外,若决定更改页脚块(也许是因为你的电子邮件地址更改了),就仅需在DTD 中作一次更改即可,勿需对共享同一
页脚的页面逐个进行更改。
通用实体引用以“&”符号开始,以“;”结尾,两个符号之间为实体名。例如,“&lt;”就是小于符号(<)的通用实体引
用,实体名为lt,该实体的替换文本就是一个字符“<”。实体名由字母和数字的混合排列以及下划线构成,禁止使用空格
和其他标点符号字符。类似XML 中的其他内容,实体引用是区分大小写的。
尽管从技术上说,允许在对象名中使用冒号“:”,但正如第18 章中所提及,此符号要保留用于命名域(namespace)。
9.2.1 定义内部通用实体引用
在DTD 中使用标记<!ENTITY>标记定义内部通用实体引用,具有如下格式:
<!ENITY name "replacement text">
name 是replacement text 的缩写。替换文本需放置于双引号中,因为其中可能包含空格和XML 标记。可在文档中键入实体
名,而读者所见为替换文本。
例如,我的名字为“Elliotte Rusty Harold”(这得怪我父母取了一个长名)。即使经过多年习惯,我依然常常打错。我
可以为我的名字定义通用实体引用,这样每次当我键入&ERH;时,读者将会看见“Elliotte Rusty Harold”,这个定义如
下:
<!ENITY ERH " Elliotte Rusty Harold">
清单9-1 示例说明了&ERH;通用实体引用,图9-1 中显示了载入到Internet Explorer 的文档。可看出,源代码中的&ERH;
实体引用输出时被替换为“Elliotte Rusty Harold”。
图9-1 清单9-1 在内部通用实体引用被实际实体替换后的情形
清单9-1:ERH 内部通用实体引用
XML 实用大全
第 253 页
<?xml version="1.0" standalone="Yes">
<!DOCTYPE DOCUME [
<!ETITY ERH "Elliotte Rusty Harold">
<!ELEMENT DOCUME (TITLE, SIGNATURE)>
<!ELEMENT TITLE (#PCDA A)>
<!ELEMENT COPYRIGHT (#PCDATA)>
<!ELEMENT EMAIL (#PCDA A)>
<!ELEMENT LAST_MODIFIED (#PCDATA)>
<!ELEMENT SIGNATURE (COPYRIGHT, EMAIL, LAST_MODIFIED)>
]>
<DOCUMENT>
<TITLE>&ERH;</TITLE>
<SIGNATURE>
<COPYRIGHT >1999 &ERH;</COPYRIGHT>
<EMAIL>elharo@metalab.unc.edu</EMAIL>
<LAS _MODIFIED>March 10, 1999</LAS _MODIFIED>
</SIGNATURE>
</DOCUMENT>
注意其中的通用实体引用,即使COPYRIGHT 和TITLE 声明为仅接受#PCDATA 的子类,&ERH;依然出现在它们之中。因&ERH; 实
体引用的替换文本是可析的字符数据,所以这种排列是合法的。所有的实体引用被实体值替换后,才对文档进行正确性检查。
在使用样式单时,也会发生相同的情形。当存在样式单引用,在实体引用替换为实体值后,才把样式应用于替换后实际存在
的元素树状结构中。
可按下列方式把版权、电子邮件或最后的修改日期声明为通用实体引用:
<!ENTITY COPY99 "Copyright 1999">
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(74)