目录
一、什么是DTD?
DTD (Document Type Definition ),文档类型定义,用来约束XML文档。规定XML文档中元素的名称,子元素的名称及顺序,元素的属性等。
二、什么是XML?
XML称为(Extensible Markup Language),意思是可扩展的标记语言。XML语法上和HTML比较相似,但HTML中的元素是固定的,而XML的标签是可以由用户自定义的。
三、XML的两种文档约束
(1)DTD约束:
DTD文件的后缀名为 .dtd;DTD文件有自己独立的语法规范(2)Scheam约束
Scheam文件的后缀名是 .xsd;Scheam 文件符合XML语法规范四、XML格式要求(合法XML)
1)有且只有一个根节点;
2)由开始标签和结束标签组成;
3)XML标签区分大小写;
4)正确嵌套标签;五、使用DTD
1、 在XML中加入DTD申明
1)内部申明:<! DOCTYPE root[]>
2)外部申明:<!DOCTYPE 文档根节点 SYSTEM “DTD文件名”>2、元素定义语法(DTD对元素的限制)
基本语法:<! ELEMENT 元素名称 元素类型 >
元素分类:EMPTY 空元素
(#PCDATA) 文本元素
(e1,e2) 混合元素元素限制:,(顺序)、|(或,多选一)、?(0或1次),*(1*0=0,0次或多次), +(1+0=1,1次或多次)
3、 属性定义语法(DTD对属性的限制)
基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
属性类型:ID/CDATA/ENUM (男|女)设置说明:#REQUIRED(必须)/#IMPLIED(可选)
4、特殊符号转义
![]()
5、案例
(1)案例一:
<?xml version="1.0" encoding="UTF-8"?> <!-- 利用 DTD 内部申明 --> <!DOCTYPE persons[ <!-- * 代表0次或无数次--> <!ELEMENT persons (person*)> <!-- (e1,e2):混合元素 ,代表 顺序 ?代表 0次或1次 --> <!ELEMENT person (name,age,contact,br?)> <!--(#PCDATA):文本元素--> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!-- |代表 多选一 --> <!ELEMENT contact (phone|mail)> <!ELEMENT phone (#PCDATA)> <!ELEMENT email (#PCDATA)> <!-- EMPTY 代表 空元素 --> <!ELEMENT br EMPTY> <!-- 属性定义语法(DTD对属性的限制) 基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明> 属性类型:ID(不能以/或数字开头)/CDATA(文本)/ENUM (男|女)【多选一】 设置说明:#REQUIRED(必须)/#IMPLIED(可选) --> <!ATTLIST person pid ID #REQUIRED paddr CDATA #IMPLIED psex (男|女) "男" > ]> <!-- 1)有且只有一个根节点; 2)由开始标签和结束标签组成; 3)XML标签区分大小写; 4)正确嵌套标签; --> <persons> <person pid="p01" paddr="123" psex="男"> <name>张三</name> <age>22</age> <contact> <phone>15882821111</phone> </contact> <br/> </person> <person pid="p02"> <name>李四</name> <age>23</age> <contact> <mail>123@qq.com</mail> </contact> </person> </persons>
(2)案例二:
<?xml version="1.0" encoding="UTF-8"?> <!-- 利用 DTD 内部申明 --> <!DOCTYPE web-app [ <!-- * 代表0次或无数次--> <!ELEMENT web-app (servlet*,servlet-mapping*)> <!-- (e1,e2):混合元素 ,代表 顺序 ?代表 0次或1次 --> <!ELEMENT servlet (servlet-name?,servlet-class?)> <!ELEMENT servlet-mapping (servlet-name?,url-pattern)> <!--(#PCDATA):文本元素--> <!ELEMENT servlet-name (#PCDATA)> <!ELEMENT servlet-class (#PCDATA)> <!ELEMENT url-pattern (#PCDATA)> ]> <web-app> <servlet> <servlet-name></servlet-name> <servlet-class></servlet-class> </servlet> <servlet-mapping> <servlet-name></servlet-name> <url-pattern></url-pattern> </servlet-mapping> </web-app>
J2EE之XML_DTD
最新推荐文章于 2024-08-04 12:47:39 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)