请众高手解惑(UP有分):为什么XML中有的用DTD文件有的不用DTD文件,用与不用有何区别???DTD文件的具体作用是什么???迷惑中.....

itbook 2002-12-20 12:00:40
请众高手解惑(UP有分):为什么XML中有的用DTD文件有的不用DTD文件,用与不用有何区别???DTD文件的具体作用是什么???迷惑中.....
...全文
103 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
gameboy999 2002-12-21
建议多看看DTD ---> Schema的衍生历史过程,体会他们的此消彼长的竞争过程

:)
  • 打赏
  • 举报
回复
hk109 2002-12-20
规范的XML 文档都必须是格式良好well-formed 的但可以规定其数据结构也可以
不被规定如果被规定那么该文档是有效的否则是无效的文档类型声明是最初应用的一
种定义方法DTD 一般包括标记声明或参数实体引用有时还包括外部实体的ID 标记声明
可以是元素类型声明属性表声明实体声明或符号声明
XML 不同于HTML XML 并没有自己固定标准的标记以及属性而用户要使用自己的
标记属性或者是实体参考等就要自行定义它们而这些定义的工作要在DTD 文档类型定义
中进行DTD 为XML 文档定义了该文档中应该包含的或者是可以包含的元素标记属性
和实体的一个清单以及它们之间的相互关系也就是说DTD 为XML 文档规定了一套专用的
规则举个简单的例子来说在一个有关甲A 联赛的XML 文档中由DTD 可以规定在此文
档中一个<FOOTBALL TEAM>包含一个或者几个<TEAM> 而在<TEAM>中则必须只有一个
<NAME> 多个<MEMBER> 另外还可能包含一个<MATCH TIME>等等
DTD 文档类型定义位于XML 声明与文档体之间XML 声明与DTD 合称为XML 文档
的序言DTD 由< ! DOCTYPE name [ 开始其中name 是文档名称DTD 的结束标记是
] > 在DTD 中可以定义元素类型属性和实体参考等
下面是一个简单例子
<? Xml version= "1.0" ? >
<! DOCTYPE LEAGUE [
<! ELEMENT TEAM (MEMBER*)>
<! ELEMENT MEMBER (#PCDATA)>
]>
< TEAM >
< MEMBER >Li Tie </ MEMBER >
< MEMBER > Yang Chen </ MEMBER >
<MEMBER > Zhang En Hua</ MEMBER >
</ TEAM >
在第一行的XML 声明<? Xml version=”1.0” ? > 之后就是DTD 定义其基本结构如下
所示
<! DOCTYPE LEAGUE [
]>
这里定义了LEAGUE 为文档名称同时定义了根元素的标记名称为TEAM 在这个DTD
中部有两个元素类型定义元素类型定义由< ! ELEMENT 开始以> 结束本例中第
一个元素类型定义是<! ELEMENT TEAM (MEMBER*)> 它定义了元素TEAM中可以包含多
个MEMBER 元素MEMBER 后面的* 号表示MEMBER 元素可以在它的父元素中多次出
现而第二个元素类型定义是<! ELEMENT MEMBER # PCDATA > 它定义了MEMBER
元素包含的内容是#PCDATA 已分析的字符数据元素类型定义在DTD 中的具体使用将
在后面的章节详细介绍
下面我们再举几个例子来简单说明一下属性和实体参考的定义至于详细的使用方法也
将在以后详细介绍
<? Xml version= "1.0" ? >
<! DOCTYPE LEAGUE [
<! ELEMENT TEAM (MEMBER*)>
<! ELEMENT MEMBER (#PCDATA)>
<! ATTLIST MEMBER CODE CDATA #REQUIRED>
]>
< TEAM >
< MEMBER CODE="5">Li Tie </ MEMBER >
< MEMBER CODE="20"> Yang Chen </ MEMBER >
<MEMBER CODE="2"> Zhang En Hua</ MEMBER >
</ TEAM >
在这个XML 文档的DTD 中除了两个元素类型定义外还有一个属性定义<! ATTLIST
MEMBER CODE CDATA #REQUIRED> 属性声明以<! ATTLIST 开始以> 结束
这里声明了元素MEMBER 的属性CODE 的类型是CDATA 使用#REQUIRED 来规定缺省值
下面是一个定义实体参考的简单例子
<? Xml version= "1.0" ? >
<! DOCTYPE LEAGUE [
<! ENTITY LEADER 中国足协>
<! ELEMENT TEAM (MEMBER*)>
<! ELEMENT MEMBER (#PCDATA)>
]>
< TEAM >
< MEMBER >Li Tie </ MEMBER >
< MEMBER> Yang Chen </ MEMBER >
<MEMBER > Zhang En Hua</ MEMBER >
</ TEAM >
实体参考的定义由<! ENTITY 开始且以> 结束此例中的<! ENTITY LEADER 中
国足协>就是一个实体参考的定义其中LEADER 是实体名称中国足协r 是用来替代实
体参考LEADER 的内容
  • 打赏
  • 举报
回复
ssm1226 2002-12-20
http://www-900.ibm.com/developerWorks/cn/xml/x-dtdint/index.shtml
  • 打赏
  • 举报
回复
全息宇宙 2002-12-20
高手哪里去了???
  • 打赏
  • 举报
回复
发帖
XML/XSL

8872

社区成员

XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
帖子事件
创建了帖子
2002-12-20 12:00
社区公告
暂无公告