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

本文详细介绍了DTD(Document Type Definition)的基本概念及其在XML文档中的应用。解释了DTD如何定义XML文档中的标记和元素属性,以及如何确保XML文档的结构完整性和合法性。此外,还提供了DTD的分类和具体实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值