• 热门标签

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

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

的元素和#PCDATA 的列表是合法的。其他用法是不合法的。例如,下面的例子就不合法:
<!ELEMENT TEAM (TEAM_CITY, TEAM_NAME, PLAYER*, #PCDATA)>
使用混合内容的最基本的理由是,当将老式的文本数据转换成XML 的过程中,随着新标记的增加逐步测试DTD 的合法性,而
不要在完成全部转换后再试图去发现错误。这是一个很好的技巧,我建议大家都这样做,毕竟从刚完成的代码中立即找出错
误比几小时后要容易一些。但是,这仅仅是开发时的一个技巧。最终的用户是不应该看到这些的。当DTD 完成后不能把子元
素同可析的字符数据混合起来。一般总可以建立一个包括可析的字符数据的新标记。
例如,可以声明只包含#PCDATA 数据的BLURB 元素并把它增加为TEAM 的最后一个子元素,这样就在每个TEAM 元素的末尾包
括一个文本块。下面是该声明:
<!ELEMENT TEAM (TEAM_CITY, TEAM_NAME, PLAYER*, BLURB)>
<!ELEMENT BLURB (#PCDATA)>
这对文档的文本改变不大。所有的变化只是向每个TEAM 元素增加了一个或多个带有开始标记和结束标记的可选元素。但是
这就使文档更加健全。而且,从XML 程序接收到文档树的XML 应用程序就能在更短的时间内处理数据,因为文档具有非混合
内容所允许的更为结构化的格式。
8.5.12 空元素
前面讨论过,定义一个没有内容的元素有时是有用的。HTML 中的例子包括图像、水平线和中断<IMG>、<R>和<BR>。在XML
中,这类空元素是通过以/>结束的空标记来标识的,如<IMG/>、<HR/>和<BR/>。
XML 实用大全
第 223 页
合法的文档必须声明使用的空元素和非空元素。因为按定义,空元素没有子元素,声明很容易。可像通常一样使用包含空元
素名的<!ELEMENT>来声明,但用关键词EMPTY (像所有XML 标记一样区分大小写)代替了子元素的列表。例如:
<!ELEMENT BR EMPTY>
<!ELEMENT IMG EMPTY>
<!ELEMENT HR EMPTY>
清单8-11 是同时使用了空元素和非空元素的合法文档。
清单8-11:使用了空标记的合法文档
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE DOCUMENT [
<!ELEMENT DOCUMENT (TITLE,SIGNATURE)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT COPYRIGHT (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT BR EMPTY>
<!ELEMENT HR EMPTY>
<!ELEMENT LAST_MODIFIED (#PCDATA)>
<!ELEMENT SIGNATURE (HR, COPYRIGHT, BR, EMAIL,
BR, LAST_MODIFIED)>
]>
<DOCUMENT>
<TITLE>Empty Tags</TITLE>
<SIGNATURE>
<HR/>
<COPYRIGHT>1998 Elliotte Rusty Harold</COPYRIGHT><BR/>
<EMAIL>elharo@metalab.unc.edu</EMAIL><BR/>
XML 实用大全
第 224 页
<LAST_MODIFIED>Thursday,April 22,1999</LAST_MODIFIED>
</SIGNATURE>
</DOCUMENT>
XML 实用大全
第 225 页
8.6 DTD 中的注释
像一份XML 文档的其他部分一样,DTD 也可以包含注释。这些注释不能在声明中出现,但可以在声明外出现。注释通常用来
组织不同部分的DTD,为一些元素的许可内容提供说明,并对元素作进一步的解释。例如,YEAR 元素的声明可以有这样的注
释:
<!--A four digit year like 1998, 1999, or 2000 ?-->
<!ELEMENT YEAR (#PCDATA)>
像所有注释一样,这只是为了便于人们阅读源代码,XML 处理程序会忽略注释部分。
注释的一个可能用法是定义标记中用到的缩略语。例如,在本章及前些章中,我极力避免使用棒球术语的缩略语,因为对一
些人来说难以弄清楚。一种可能的途径是使用缩略语但在DTD 中用注释加以定义。清单8-12 同以前的棒球例子相似,但使
用了DTD 注释和缩略标记。
清单8-12:使用缩略标记和DTD 注释的合法XML 文档
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE SEASON [
<!ELEMENT YEAR (#PCDATA)>
<!ELEMENT LEAGUE (LEAGUE_NAME, DIVISION, DIVISION, DIVISION)>
<!--American or National ?
<!ELEMENT LEAGUE_NAME (#PCDATA)>
<!--East , West , or Central ?
<!ELEMENT DIVISION_NAME (#PCDATA)>
<!ELEMENT DIVISION (DIVISION_NAME, TEAM+)>
<!ELEMENT SEASON (YEAR, LEAGUE, LEAGUE)>
<!ELEMENT TEAM (TEAM_CITY, TEAM_NAME, PLAYER*)>
<!ELEMENT TEAM_CITY (#PCDATA)>
<!ELEMENT TEAM_NAME (#PCDATA)>
<!ELEMENT PLAYER (GIVEN_NAME, SURNAME, P, G,
GS, AB?, R?, H?, D?, T?, HR?, RBI?, SB?, CS?,
XML 实用大全
第 226 页
SH?, SF?, E?, BB?, S?, HBP?, CG?, SO?, ERA?, IP?,
HRA?, RA?, ER?, HB?, WP?, B?, WB?, K?)
>
<!--=======================-->
<!--Player Info-->
<!--Player’s last name-->
<!ELEMENT SURNAME (#PCDATA)>
<!--Player’s first name-->
<!ELEMENT GIVEN_NAME (#PCDATA)>
<!—Position-->
<!ELEMENT P (#PCDATA)>
<!--Games Played-->
<!ELEMENT G (#PCDATA)>
<!--Games Started-->
<!ELEMENT GS (#PCDATA)>
<!--=======================-->
<!--Batting Statistics-->
<!--At Bats-->
<!ELEMENT AB (#PCDATA)>
<!--Runs-->
<!ELEMENT R (#PCDATA)>
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(68)