XML之文档类型定义[转载]

DTD文档类型定义详解
本文详细介绍了DTD(Document Type Definition)的概念及其在XML中的应用。DTD用于定义自定义标记的含义及元素属性,确保XML文档的合法性和一致性。文章解释了DTD的不同类型,包括内部DTD、外部DTD以及它们的组合使用,并提供了示例。

DTD Document Type Definition 文档类型定义。我们在XML中可以自定义标记,那XML解析器怎么认识这些自定义标记并根据自定义标记的处理法则来处理元素呢?这需要DTD,它是我们用来定义我们自己定义的标记的含义,我们自己定义元素的相关属性的文档。
DTD与XML是类与对象,数据库表结构与记录的关系。
符合XML规则(包括必须有XML声明语句;必须有且只有一个根元素;标记大小写敏感;属性值用引号;标记成对,空标记关闭;元素正确嵌套)的XML文档称为结构完成的XML文档;符合XML规则并且符合DTD验证的XML文档称为合法的XML文档。IE只验证结构完整性不验证合法性,XMLSPY验证合法性。
DTD分类:内部DTD;外部DTD;内外结合的DTD。
外部DTD的优点:被多个XML共享,保持统一的数据交换格式,不同组织的人使用同一个通用的DTD来交换数据;应用程序可以使用一个标准DTD效验从外部世界接受来的XML数据是否有效。
下面是一个lsmx.dtd

<?xml version="1.0" encoding="GB2312"?>
<!ELEMENT 家庭 (人+, 家电*)>
<!ELEMENT 人 (#PCDATA)>
<!ELEMENT 家电 EMPTY>
<!ATTLIST 人
名字 CDATA #REQUIRED
性别 (男 | 女) #REQUIRED
年龄 CDATA #REQUIRED
爱好 CDATA #IMPLIED
>
<!ATTLIST 家电
名称 CDATA #REQUIRED
数量 CDATA #REQUIRED
说明 CDATA #IMPLIED
>

元素定义
<!ELEMENT NAME CONTENT>
关键字 元素名称 元素类型
元素类型
1, EMPTY:空元素,但可以有属性。<mytag id=”001”/>。
2, ANY:含任何DTD中定义的元素内容。
3, #PCDATA:纯文本,不能有任何自元素。<!ELEMENT 人 (#PCDATA)>。
4, 组合类型:<!ELEMENT 家庭 (人+, 家电*)>。
符号含义:+最少出现一次;*可以出现任意次,包括0次;?出现0或一次;(a,b,c)a,b,c必须出现,并且按指定位置出现。

属性定义
<!ATTLIST 元素名称
属性名称 属性类型 属性特点
··········
>
属性类型:
1, CDATA:只包含字符数据。
2, ID:类似主键,必须唯一。
3, NMTOKEN 不包含中文的CDATA。
4, 枚举事先定义好一些值,该属性的值必须匹配列出的这些数值。
性别 (男 | 女) #REQUIRED。
属性特点:
1,#REQUIRED NOTNULL 非空。
2,#IMPLIED 可写可不写。
3,#FIXED value 固定值,不可变。
属性名 CDATA #FIXED“固定值”
5, Default value 默认值

实现:
<?xml version="1.0" encoding="GB2312"?>
<!DOCTYPE 家庭 SYSTEM "lsmx.dtd">
<家庭>
<人名字="郭大路" 性别="男" 年龄="25"/>
<人名字="李寻欢" 性别="男" 年龄="38" 爱好="作个教育家和伟人"/>
<家电名称="彩电" 数量="3"/>
</家庭>

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/chenanlin1981/archive/2006/06/27/840531.aspx

某学校拟使用XML文件制定一个学生(含已毕业学生)信息文档,该文档描述其学校内学生的管理信息。 1、 选用合适的编辑器,编写一个XML文件,应至少包括下述信息内容: 学生目录下应该包括: (1) 所有学生的共有信息:班级的名字、专业、类别等 (2) 学生 学生1 学生基本信息(学生姓名性别、学号、年龄) 入学信息(入学时间、辅导员名) 班级内学生生源信息( 生源1:(生源地名称、联系方式等信息) 生源2: 生源n: ) 毕业信息(毕业时间、毕业数量、辅导员名) 学生2 学生3 。。。。。 学生N (3)辅导员 辅导员1(辅导员姓名、联系方式、职位、管理的班级名) 辅导员2 2、针对该XML文件,画出其相应的树状结构图。 3、针对所编写XML文件,编写其相应的DTD文件,并使用解析器验证其有效性,对验证结果抓图。 4、针对所编写XML文件,编写合适的XSL文件,将学生基本信息打印成表格,并用ie浏览器进行浏览并截图。 5、使用JAVA编程语言,对XML文件进行解析: 显示该xml文件的所有节点、属性的名字; 同时显示该xml文件所有标记的文本数据; 计算学生的入学平均年龄并进行输出。 要求:1)xml文件中应该包括文本内容、标记、属性、命名空间,混合标记等的内容 2)dtd文件应该有相应的结果抓图 3)xsl文件应用到规范中的常用技巧,例如模板调用、for-each、value-of、xsl标记等。 4)解析器结果应该有抓图。 5)形成的代码交老师验证。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值