• 热门标签

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

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

</TEAM>
</DIVISION>
<DIVISION NAME=" West" >
<TEAM CITY=" Oakland" NAME=" Athletics" >
</TEAM>
</DIVISION>
XML 实用大全
第 312 页
</LEAGUE>
</SEASON>
为了此文档的合法性和结构的完整性,就需要提供DTD。该DTD 中必须声明清单10-4 中使用的所有元素和属性。元素的声
明与旧版类似,只是由于大部分信息被转移到属性中的缘故,显得更为简短:
<!ELEMENT SEASON (LEAGUE, LEAGUE)>
<!ELEMENT LEAGUE (DIVISION, DIVISION, DIVISION)>
<!ELEMENT DIVISION (TEAM+)>
<!ELEMENT TEAM (PLAYER*)>
<!ELEMENT PLAYER EMPTY>
10.7.1 在DTD 中声明SEASON 的属性
SEASON 拥有单一的属性YEAR。尽管有些语义上的限定,规定什么是,而什么不是一个年份(1998 是年份,March 31 就不是);
DTD 不进行这种限定。因此,最好的方法就是声明YEAR 属性具有最通用的属性类型CDATA;另外,希望每个赛季都具有年份
值(year),就可使YEAR 属性为REQUIRED 类型。
<!ATTLIST SEASON YEAR CDATA #REQUIRED>
尽管确实无法限制作者输入YEAR 属性文本的格式,但是至少可以提供一个记号,表明可以接受何种格式的文本。例如,规
定年份(year)需要四位数的格式就不失为一个好主意。
<!ATTLIST SEASON YEAR CDATA #REQUIRED> <!--e.g. 1998 -->
<!--DO NOT USE TWO DIGIT YEARS like 98, 99, 00!! -->
10.7.2 在DTD 中声明DIVISION 和LEAGUE 属性
接下来考虑DIVISION 和LEAGUE 元素。它们都具有单一的NAME 属性。此外自然具有CDATA 和REQUIRED 属性类型。因为两个
不同的元素具有两个相互独立的NAME 属性,所以需要两个独立的<!ATTLIST>声明。
<!ATTLIST LEAGUE NAME CDATA #REQUIRED>
<!ATTLIST DIVISION NAME CDATA #REQUIRED>
在这里添加注释可以有助于表明作者期望的格式;例如是否包括单词League 和Division 作为名字的一部分。
<!ATTLIST LEAGUE NAME CDATA #REQUIRED>
<!--e.g. "Nation l League" -->
<!ATTLIST DIVISION NAME CDATA #REQUIRED>
XML 实用大全
第 313 页
<!--e.g. "East" -->
10.7.3 在DTD 中声明TEAM 属性
TEAM 元素具有NAME 和CITY 属性,两个属性均为CDATA 和REQUIRED 类型。
<!ATTLIST TEAM NAME CDATA #REQUIRED>
<!ATTLIST TEAM CITY CDATA #REQUIRED>
添加注释有助于建立某些并不明显的东西,例如,在一些情况下,CITY 属性实际上可以是某个州名:
<!ATTLIST TEAM CITY CDATA #REQUIRED>
<!--e.g. "San Diego" as in "San Diego Padres"
or "Texas" as in "Texas Rangers" -->
换一种方式,可以在一个简单的<!ATTLIST>中声明这两个属性。
<!ATTLIST TEAM NAME CDATA #REQUIRED
CITY CDATA #REQUIRED>
10.7.4 在DTD 中声明PLAYER 的属性
PLAYER 元素可以说是包含了大部分属性类型。首先是GIVEN_NAME 和SURNAME 两个属性,均为简单的CDATA、REQUIRED 类型。
<!ATTLIST PLAYER GIVEN_NAME CDATA #REQUIRED>
<!ATTLIST PLAYER SURNAME CDATA #REQUIRED>
下一个PLAYER 属性是POSITION。因为棒球场上球员的位置是一个相当基本的数据,在这里可使用枚举属性类型。可是“First
Base”、“Second Base”、“Third Base”、“Starting Pitcher”和“Relief Pitcher”都包含有空格,因此它们都不
是有效的XML 名称字。因此仅能使用CDATA 属性类型。实际情况下没有任何理由为POSITION 选定缺省值,所以该属性应为
REQUIRED 类型。
<!ATTLIST PLAYER POSITION CDATA #REQUIRED>
接下来的是各种各样的统计数据:GAMES、GAMES_STARTED、AT_BAT、RUNS、HITS、WINS、LOSSES、SAVES、SHUTOUTS 等等。
上述每一个属性本应为数字类型,但是因为XML 不提供数字类型机制,所以把它们简单地声明为CDATA 类型。因为不是每一
个球员都具有如上的每一个统计数据值,所以把上述各属性声明为IMPLIED 类型,而不是REQUIRED 类型。
<!ATTLIST PLAYER GAMES CDATA #IMPLIED>
<!ATTLIST PLAYER GAMES_STARTED CDATA #IMPLIED>
<!-Batting Statistics ->
XML 实用大全
第 314 页
<!ATTLIST PLAYER AT_BATS CDATA #IMPLIED>
<!ATTLIST PLAYER RUNS CDATA #IMPLIED>
<!ATTLIST PLAYER HITS CDATA #IMPLIED>
<!ATTLIST PLAYER DOUBLES CDATA #IMPLIED>
<!ATTLIST PLAYER TRIPLES CDATA #IMPLIED>
<!ATTLIST PLAYER HOME_RUNS CDATA #IMPLIED>
<!ATTLIST PLAYER RBI CDATA #IMPLIED>
<!ATTLIST PLAYER STEALS CDATA #IMPLIED>
<!ATTLIST PLAYER CAUGHT_STEALING CDATA #IMPLIED>
<!ATTLIST PLAYER SACRIFICE_HITS CDATA #IMPLIED>
<!ATTLIST PLAYER SACRIFICE_FLIES CDATA #IMPLIED>
<!ATTLIST PLAYER ERRORS CDATA #IMPLIED>
<!ATTLIST PLAYER WALKS CDATA #IMPLIED>
<!ATTLIST PLAYER STRUCK_OUT CDATA #IMPLIED>
<!ATTLIST PLAYER HIT_BY_PITCH CDATA #IMPLIED>
<!-Pitching Statistics ->
<!ATTLIST PLAYER WINS CDATA #IMPLIED>
<!ATTLIST PLAYER LOSSES CDATA #IMPLIED>
<!ATTLIST PLAYER SAVES CDATA #IMPLIED>
<!ATTLIST PLAYER COMPLETE_GAMES CDATA #IMPLIED>
<!ATTLIST PLAYER SHUTOUTS CDATA #IMPLIED>
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(91)