• 热门标签

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

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

通常,任何相对于文档位置所形成合法的URL 的引用都可以接受。例如,下面这些都是合法的文档类型声明:
<!DOCTYPE SEASON SYSTEM"/xml/dtds/baseball.dtd">
<!DOCTYPE SEASON SYSTEM"/dtds/baseball.dtd">
<!DOCTYPE SEASON SYSTEM "../baseball.dtd">
一个文档不能有多于一个的文档类型声明,即不能有多于一个的<!DOCTYPE >标记。要使用不止在一个DTD 中声明
的元素,就需要使用外部参数实体引用。这些内容将在下一章中讨论。
8.7.2 公共的DTD
XML 实用大全
第 243 页
关键词SYSTEM 是为单个作者或小组所用的私有的DTD 使用的。但作为XML 承诺的一部分,可令覆盖整个产业的广泛组织(如
ISO 或IEEE)能够将公共DTD 加以标准化,以便用于各自的专门领域。这样的标准化可以让人们不用为同一项目重复作标记,
并且使用户共享公用文档更容易。
为创建组织之外的编写者设计的DTD 使用PUBLIC 关键词而不使用SYSTEM 关键词。并且DTD 有一个文件名。句法如下:
<!DOCTYPE root_element_name PUBLIC "DTD_name" "DTD_URL">
root_element_name 仍然是基本元素名称。PUBLIC 是XML 关键词,说明这一DTD 是公共使用并具有名称。DTD_name 是与此
DTD 联系的名称。有些XML 处理程序会使用名称从中心库中检索DTD。最后,如果DTD 不能根据名称从熟知的库中检索到,
则DTD_URL 是一个能找到该DTD 的相对或绝对URL。
DTD 名称与XML 名称略有不同。它们只能包含ASCII 字母字符、空格、软回车符、换行符和下面的标点符号:
-’()+,/:=?;!*#@$_%。 而且,公共DTD 要遵守一些约定。
如果一项DTD 是ISO 标准,它的名称要以字符串“ISO”开始。如果是非ISO 标准组织批准的DTD,它的名称以加号(+)开始。
如果不是标准组织批准的DTD,它的名称以连字符 (-)开始。这些开始字符串后接双斜线(//) 和DTD 所有者的名字,其后
接另一个双斜线和DTD 描述的文档类型,然后又是一个双斜线后接ISO639 语言标识符,如EN 表示英语。在
http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt 处列有完整的ISO639 标识符。例如,棒球DTD 可以如下命
名:
-//Elliotte Rusty Harold//DTD baseball statistics//EN
本例说明这个DTD 不是由任何标准组织批准的(-),为Elliotte Rusty Harold 所有,描述棒球统计,用英语编写。通过DTD
名称指向这一DTD 的完整的文档类型声明如下:
<!DOCTYPE SEASON PUBLIC
"//Elliotte Rusty Harold//DTD baseball statistics//EN"
"http://metalab.unc.edu/xml/dtds/baseball.dtd">
读者也许注意到了许多HTML 编辑器如BBEdit 会在其创建的每个HTML 文档开端放入下列字符串:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML//EN">
现在可能 了解这些字符串是什么意思了!它表明文档符合一项非标准 (-) 的HTML 的DTD,由W3C 用英语制作。
从技术上说,W3C 不是一个标准组织,因为它的成员限于交纳会费的公司而不是官方批准的实体。它只出版建议而不
是标准。实际上这种区别没有关系。
8.7.3 内部和外部DTD 子集
尽管大多数文档由易于定义的部分组成,但不是所有的文档都使用共同的模板。许多文档为自己使用而增加特定元素时,可
能需要像HTML 4.0 DTD 这样的标准DTD。其他文档可能只使用标准元素,但需要对它们重新排序。例如,一个HTML 主页可
XML 实用大全
第 244 页
能有一个BODY 元素,它必须包含一个H1 标题标记后接一份DL 定义列表,而另一个HTML 主页可能有一个BODY 元素,它包
含许多不同的顺序不定的标题标记、段落和图像。如果特定的文档与同一站点上其他页面具有不同的结构,在文档本身内定
义结构比在单独的DTD 中定义更有用。这种方法也使文档更易于编辑。
为达此目的,文档可使用内部和外部DTD。内部声明放在<!DOCTYPE>标记尾部的方括号中。例如,假如需要一个包括棒球统
计并有页眉和页脚的主页。这样的文档可如清单8-15 所示。棒球信息从文档baseball.dtd 中得到,构成外部DTD 子集。基
本元素DOCUMENT 以及元素TITLE 和SIGNATURE 的定义来自包含于文档中的内部DTD 子集。这有点不寻常。一般的,更为通
用的部分可能应该是外部DTD 的一部分,而内部内容则更与特定专题有关。
清单8-15:DTD 具有内部和外部DTD 子集的棒球文档
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE SEASON SYSTEM "baseball.dtd"> [
<!ELEMENT DOCUMENT (TITLE, SEASON, SIGNATURE)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT COPYRIG T (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT LAST_MODIFIED (#PCDATA)>
<!ELEMENT SIGNATURE (COPYRIGHT, EMAIL, LAST_MODIFIED)>
]>
<DOCUMENT>
<TITLE>1998 Major League Baseball Statistics</TITLE>
<SEASON>
<YEAR>1998</YEAR>
<LEAGUE>
<LEAGUE_NAME>National</LEAGUE_NAME>
<DIVISION>
<DIVISION_NAME>East</DIVISION_NAME>
<TEAM>
<TEAM_CITY>Atlanta</TEAM_CITY>
XML 实用大全
第 245 页
<TEAM_NAME>Braves</TEAM_NAME>
</TEAM>
<TEAM>
<TEAM_CITY>Florida</TEAM_CITY>
<TEAM_NAME>Marlins</TEAM_NAME>
</TEAM>
<TEAM>
<TEAM_CITY>Montreal</TEAM_CITY>
<TEAM_NAME>Expos</TEAM_NAME>
</TEAM>
<TEAM>
<TEAM_CITY>New York</TEAM_CITY>
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML实用大全(72)