• 热门标签

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

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

<P>Catcher</P>
<G>97</G>
<GS>81</GS>
<AB>267</AB>
<R>36</R>
<H>70</H>
<D>12</D>
<T>0</T>
<HR>15</HR>
<RBI>56</RBI>
XML 实用大全
第 270 页
<SB>0</SB>
<CS>1</CS>
<SH>5</SH>
<SF>4</SF>
<E>3</E>
<BB>38</BB>
<S>50</S>
<HBP>4</HBP>
</PLAYER>
虽然可在本书附带的CD-ROM 上的example\baseball\player 目录中找到所有队员名单,但这里省略了大约1200 名
的队员名单。
文档声明必须具有encoding 属性(与XML 声明不同,XML 声明可以拥有encoding 属性,但不是必要的),encoding 属性规
定实体使用的字符集。允许使用不同字符组写出的复合文档。例如,Latin-5 字符组写出的文档可与UTF-8 字符集写出的文
档结合为一体。处理器或浏览器依然必须理解不同实体使用的编码。
本章中的所有例子以ASCII 编码形式给出。因ASCII 编码是ISO Latin-1 、UTF-8 的严格子集,所以可以使用如下的任一文
本声明:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="UTF-8"?>
清单9-10 mets.dtd 和清单9-11 mets.xml 显示如何利用外部可析实体组建完整的球队文档。在DTD 中为球队中的每个队员
定义外部实体引用。利用文档内部DTD 子集中的外部参数实体引用,XML 文档载入该DTD;然后,该文档包括许多外部通用
实体引用来载入分立的队员数据。
清单9-10:具有player 实体引用的New York Mets DTD(mets.dtd)
<!ENTITY AlLeiter SYSTEM "mets/AlLeiter.xml">
<!ENTITY ArmandoReynoso SYSTEM "mets/ArmandoReynoso.xml">
<!ENTITY BobbyJones SYSTEM "mets/BobbyJones.xml">
<!ENTITY BradClontz SYSTEM "mets/BradClontz.xml">
XML 实用大全
第 271 页
<!ENTITY DennisCook SYSTEM "mets/DennisCook.xml">
<!ENTITY GregMcmichael SYSTEM "mets/GregMcmichael.xml">
<!ENTITY HideoNomo SYSTEM "mets/HideoNomo.xml">
<!ENTITY JohnFranco SYSTEM "mets/JohnFranco.xml">
<!ENTITY JosiasManzanillo SYSTEM "mets/JosiasManzanillo.xml">
<!ENTITY OctavioDotel SYSTEM "mets/OctavioDotel.xml">
<!ENTITY RickReed SYSTEM "mets/RickReed.xml">
<!ENTITY RigoBeltran SYSTEM "mets/RigoBeltran.xml">
<!ENTITY WillieBlair SYSTEM "mets/WillieBlair.xml">
图9-3 显示了载入到Internet Explorer 中的XML 文档。请注意即使主文档仅包含存储队员数据的实体引用,所有队员数据
也能被显示出来。Internet Explorer 解决了所有外部引用,这可不是所有的XML 语法分析程序或者浏览器都能做到的。
在CD-ROM 上的example\baseball 目录中可找到其余球队。请特别需要注意,简洁的外部实体引用是如何嵌入多个队员数据
的。
图9-3 XML 文档显示1998 年New York Mets 队中的所有球员。
清单9-11:具有从外部实体中载入的队员数据的New York Mets(mets.xml)
<?xml version="1.0" standalone="no"?>
XML 实用大全
第 272 页
<!DOCTYPE TEAM SYSTEM "team.dtd"[
<!ENTITY % players SYSTEM "mets.dtd">
%players;
]>
<TEAM>
< TEAM_CITY>New York</ TEAM_CITY>
< TEAM_ NAME>Mets</ TEAM_ NAME>
&AlLeiter;
&ArmandoReynoso;
&BobbyJones;
&BradClontz;
&DennisCook;
&GregMcmichael;
&HideoNomo;
&JohnFranco;
&JosiasManzanillo;
&OctavioDotel;
&RickReed;
&RigoBeltran;
&WillieBlair;
</TEAM>
通过组合球队文件创建分部、通过组合分部文件创建联盟、通过组合联盟文件创建赛季的过程的延续,具有一定的好处。但
遗憾的是,所有努力只会带来灾难性的后果。通过外部实体的方法嵌套的文档不能拥有自身的DTD。最多只能是序进程包含
文本声明。这就是说,仅能拥有单一层次的文本嵌入。与此不同的是,DTD 嵌入可进行任意层次的嵌套。
XML 实用大全
第 273 页
因此唯一可用的方法就是,在引用了许多不同球员文档的单一文档中包括所有球队、分部、联盟和赛季。需要1200 多个实
体声明(每个队员对应一个声明)。因为DTD 可以深层嵌套,就引入如清单9-10 所示包含所有球队定义的DTD 开始。如清
单9-12 所示。
清单9-12:球员的DTD(players.dtd)
<!ENTITY % angels SYSTEM "angels.dtd">
%angels;
<!ENTITY % astros SYSTEM "astros.dtd">
%astros;
<!ENTITY % athletics SYSTEM "athletics.dtd">
%athletics;
<!ENTITY % bluejays SYSTEM "bluejays.dtd">
%bluejays;
<!ENTITY % braves SYSTEM "braves.dtd">
%braves;
<!ENTITY % brewers SYSTEM "brewers.dtd">
%brewers;
<!ENTITY % cubs SYSTEM "cubs.dtd">
%cubs;
<!ENTITY % devilrays SYSTEM "devilrays.dtd">
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(79)