DTD(Document Type Definition)详解

本文详细介绍了DTD(Document Type Definition),包括DTD的引入方式、定义元素(任意类型、字符串值、空元素、包含子元素、混合类型)、定义元素属性以及定义实体。阐述了各种元素类型描述、属性约束以及实体引用的用法,帮助理解XML文档的语义约束。

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

DTD(Document Type Definition)全名是文档类型定义,用来为XML文档定义语义约束,比较简单,但是由于其支持的数据类型有限,无法对元素或属性的内容进行详细规范,在可读性和可扩展性方面也比不上XML Schema

 

一,DTD引入方式

1,内部DTD

即DTD和XML格式的数据放在同一份文档中,其格式为:

<!DOCTYPE 根元素名 [
	元素描述
]>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
	<!ELEMENT book (name , price)>
	<!ELEMENT name (#PCDATA)>
	<!ELEMENT price (#PCDATA)>
]>
<book>
	<name>test</name>
	<price>10</price>
</book>

2,外部DTD

其格式为:<!DOCTYPE 根元素名称 SYSTEM "外部DTD的URI">,示例如下:

book.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "book.dtd">
<book>
	<name>test</name>
	<price>10</price>
</book>

book.dtd:

<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT book (name , price)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT price (#PCDATA)>

3,公用DTD

其格式为:<!DOCTYPE 根元素名称 PUBLIC "DTD标识名" "公用DTD的URI">,下面的示例取自Spring的配置文件:

<?xml version="1.0"?>  
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"   
        "http://www.springframework.org/dtd/spring-beans.dtd">
......

 

二,定义元素

其格式为:<!ELEMENT 元素名 元素类型描述>

元素类型描述主要包含以下5种:

1,任意类型

元素的内容可以是字符串,也可以包含其它子元素,也可以是空元素,其格式为:<!ELEMENT 元素名 ANY>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
	<!ELEM
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值