• 热门标签

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

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

<!ENTITY ocirc "&#244;"><!-small o, circumflex accent ->
<!ENTITY otilde "&#245;"><!-small o, tilde ->
<!ENTITY ouml "&#246;"><!-small o, dieresis or umlaut->
<!ENTITY oslash "&#248;"><!-small o, slash ->
<!ENTITY ugrave "&#249;"><!-small u, grave accent ->
<!ENTITY uacute "&#250;"><!-small u, acute accent ->
<!ENTITY ucirc "&#251;"><!-small u, circumflex accent ->
XML 实用大全
第 290 页
<!ENTITY uuml "&#252;"><!-small u, dieresis or umlaut ->
<!ENTITY yacute "&#253;"><!-small y, acute accent ->
<!ENTITY thorn "&#254;"><!-small thorn, Icelandic ->
<!ENTITY yuml "&#255;"><!-small y, dieresis or umlaut ->
可简单地应用参数实体引用链接到清单9-18 所示的实体引用,然后在文档中使用通用实体引用,而不需要把清单9-18 包含
在文档DTD 的内部子集中。
例如,假设需要以结构完整的XML 文档将中世纪的Hlidebrandslied 文档放入Web 上,可是原稿为德语书写的,文中使用了
非ASCII 字符æ、ê、î、ô 和û。
为使文档具有最大的可移植性,可按ASCII 字符键入诗文,而把这些字母分别编码为&ecirc;、&icirc;、&ocirc;、&ucirc;
和&aelig;的实体引用。即使不需要有效完整的文档,也依然需要一个DTD,该DTD 声明使用的各种实体引用。获取所需扩
展字符的最简单方法就是简单地引用清单9-18 中的外部DTD。清单9-19 说明了这种情况。
清单9-19:为使用ASCII ISO Latin-1 字母而使用实体引用的无效完整文档
<?xml version="1.0" standalone="no"?>
<!DOCTYPE DOCUMENT [
<!ENTITY % ISOlat1
PUBLIC "ISO 8879-1986//E I IES Added Latin 1//E //XML"
"http://www.schema.net/public-text/ISOlat1.pen">
%ISOlat1;
]>
<DOCUMENT>
<TITLE>Das Hildebrandslied, circa 775 C.E. </TITLE>
<LINE>Ik gih&ocirc;rta dhat seggen,</LINE>
<LINE>dhat sih urh&ecirc;ttun &aelig;non muot&icirc;n,</LINE>
<LINE>Hiltibrant enti Hadhubrant untar heriun tu&ecirc;m.
</LINE>
<LINE>sunufatarungo: iro saro rihtun,</LINE>
XML 实用大全
第 291 页
<COMMENT>I ll spare you the next 61 lines</COMMENT>
</DOCUMENT>
文档部分是由使用现场编写的标记的结构完整的XML 所组成。这些标记未在DTD 中声明过,也没有必要去维护文档的结构完
整性。可是实体引用需要在内部或外部子集的DTD 中声明。在清单9-19 中,通过外部参数实体引用%ISO1atl 载入清单9-18
中声明的实体,也就在外部子集中声明了实体引用。
DTD 也可用于储存通用样式文本,该文本用在整个Web 站点上的结构完整的XML 文档,有利于维护XML 文档的合法性。当仅
仅处理结构完整的XML 文档时,可体现出一定的简便性,这是因为插入到文档中的样式文本与父文档DTD 的约束条件上不会
出现任何匹配问题。
首先,把不带DTD 的样式插入到一个文件中,如清单9-20 所示。
清单9-20:不带DTD 的Signature 样板
<?xml version="1.0"?>
<SIGNATURE>
<COPYRIGHT>1999 Elliotte Rusty Harold</COPYRIGH >
<EMAIL>elharo@metalab.unc.edu</EMAIL>
</SIGNATURE>
接下来,按清单9-21 所示编写一个小型的DTD,该DTD 为清单9-20 中的文件定义一实体引用。在这里,假设可在文件
signature.xml 中找到清单9-20 所示内容,该文件位于Web 服务器根目录上的boilerplate 目录中;也假定可在文件
singature.dtd 中找到清单9-21 所示内容,该文件位于Web 服务器根目录上的dtds 目录中.
清单9-21:定义实体引用的Signature DTD
<!ENTITY SIGNATURE SYSTEM "/boilerplate/signature.xml">
现在,就可在文档中引入signature.dtd,然后使用通用实体引用&SIGNATURE;,就可在文件中嵌入signature.xml 的内容。
清单9-22 说明了这种用法:
清单9-22:使用&SIGNATURE;的文件
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE DOCUMENT [
<!ENTITY % SIG SYSTEM "/dtds/signature.dtd">
%SIG;
]>
XML 实用大全
第 292 页
<DOCUMENT>
<TITLE>A Very Boring Document</TITLE>
&SIGNATURE;
</DOCUMENT>
似乎这种间接的做法与真正所需的相比较,多了一个层次。例如清单9-23 直接在其内部DTD 子集中定义了&SIGNATURE;实
体引用,且确实有效。但是这种间接做法所增加的层次可保护Web 站点免于被更改,这是因为无法通过编辑一个文件的方式
仅更改所有页面使用的signature 内容。也可通过编辑一个文件的方式更改所有Web 页面使用的signature 的位置。另一方
面,清单9-22 中使用的方法越直接,就越便于在不同的页面上使用不同的signature。
清单9-23:使用&SIGNATURE;减少了一层非直接引用的文件
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE DOCUMENT [
<!ENTITY % SIGNATURE SYSTEM "/dtds/signature.dtd">
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(84)