DTD语法概述

简介: XML作为一门标记语言,它就需要一种文档(即文档类型定义DTD)来定义,DTD可以看作是一类XML文档的模板。它定义了文档的逻辑结构,规定了XML文档中所使用的元素,实体,元素的属性,元素与实体之间的关系。

XML作为一门标记语言,它就需要一种文档(即文档类型定义DTD)来定义,DTD可以看作是一类XML文档的模板。它定义了文档的逻辑结构,规定了XML文档中所使用的元素,实体,元素的属性,元素与实体之间的关系。它使得数据交流与共享得以正常进行,验证了数据的有效性。DTD可以是一个完全独立的文件,也可以在XML文件中直接设定。所以,DTD分为外部DTD(在XML文件中调用另外已经编辑好的DTD)和内部DTD(在XML文件中直接设定DTD)两种。在一些有相互业务往来的公司,如果他们使用的电子文档是XML文档,那么我们就可以定用一个独立的DTD文档。每次交换和定义时都引用它来验证结构完整性和语法的合法性。比如以下一个XML文档:

<? xml version ="1.0" encoding ="GB2312" standalone="yes"  ?>
< 学生名单 >
    
< 学生 >
      
< 学号 > 2003081205 </ 学号 >
      
< 姓名 > 田淋 </ 姓名 >
      
< 班级 > 计03.2班 </ 班级 >
    
</ 学生 >
    
< 学生 >
      
< 学号 > 2003081232 </ 学号 >
      
< 姓名 > 杨雪锋 </ 姓名 >
      
< 班级 > 计03.2班 </ 班级 >
    
</ 学生 >
</ 学生名单 >

它的一个DTD文档如下:

 1 <? xml version="1.0" encoding="GB2312" standalone="yes" ?>
 2 < !DOCTYPE 学生名单[
 3 <!ELEMENT 学号 (#PCDATA) >
 4 <! ELEMENT 姓名 (#PCDATA) >
 5 <! ELEMENT 班级 (#PCDATA) >
 6 <! ELEMENT 学生 (学号,姓名,班级) >
 7 <! ELEMENT 学生名单 (学生,学生) >
 8 ]>
 9
10
11

2为DTD定义开始标记,学生名单为其根元素,3到7都是元素定义 ,8是结束标记。下面将介绍一下元素声明的语法及注意事项。

元素声明
格式:<!ELEMENT 元素名称 元素的内容格式的定义>
(1)基本元素声明:<!ELEMENT 学号 (#PCDATA)>    元素名称后直接跟的是数据类型则为基本元素。
(2)复合元素声明:<!ELEMENT 学生 (学号,姓名,班级)> 学生元素是复合元素,它包含学号,姓名,班级三个基本元素。其实根元素是复合元素的一个特例,所有的元素都直接或间接地包含在根元素中。

元素出现次数的控制

加"?"表示些元素可出现0次或1次;加"*"表示可出现任意次;加"+"表示至少要出现一次。如:<!ELEMENT 学生 (学号?,姓名,班级,爱好*)>则表示一个学生只有唯一的学号,或者还未分配学号,即学号元素出现0次或1次,而爱好可以没有,也可以有好几方面的,所以用*(任意次)限定。

选择性元素 用"|"限定,如 <!ELEMENT 学生(姓名,性别,(优秀|良好|中等))>

属性声明
格式:<!ATTLIST Eltment_name Attribute_name Type [Keyword] [Default_value]> 
!ATTLIST 为定义属性的指令,后面是元素的名称,属性名称,属性值类型及默认值的关键字及默认值。
如一个学生有性别及班级两个属性,可这样定义:<!ATTLIST  学生 性别 CDATA "女" 班级 CDATA "计算机03.2班">
必需赋值的属性:加REQUIRED关键字,如:<!ATTLIST  学生 性别 CDATA #REQUIRED "女" 班级 CDATA "计算机03.2班"> 表示必需给出学生的性别值。可有可无的属性则用IMPLIED关键字,固定取值的属性用FIXED关键字。
属性的类型:在XML中共有10种属性类型,如下表:

类型 含义
CDATA 字符数据
Enumerated 可能的取值的列表
ID 唯一的数字
IDREF ID类型属性的值
IDREFS 由空格分开的若干个ID
ENTITY 实体
ENTITYS 若干个实体
NMTOKEN XML名称
NOTATION DTD中声明的注释名
NMTOKENS 多个XML名称
 

目录
相关文章
|
XML 存储 数据处理
DTD约束的基本概述
DTD约束的基本概述
278 0
|
4月前
|
移动开发 前端开发 JavaScript
HTML定义与概述
HTML定义与概述
|
4月前
|
XML 数据格式
DTD和XML Schema之间的区别?
【8月更文挑战第22天】
78 0
|
7月前
|
XML 存储 数据格式
探索 DTD 在 XML 中的作用及解析:深入理解文档类型定义
DTD(文档类型定义)用于定义XML文档的结构和合法元素、属性。它允许不同团体就数据交换标准达成一致,并用于验证XML数据的有效性。DTD可通过内部声明(在XML文档内)或外部声明(在单独文件中)来定义。内部声明示例显示了如何定义`note`元素及其子元素的结构,而外部声明则引用外部DTD文件。元素、属性、实体和PCDATA/CDATA是XML构建模块。DTD中,元素通过ELEMENT声明定义,属性通过ATTLIST声明定义,实体声明提供特殊字符或外部资源的快捷方式。
121 0
|
7月前
|
前端开发
【HTML专栏1】语法规范、基础结构标签
【HTML专栏1】语法规范、基础结构标签
62 0
|
7月前
HTML 文档声明和语言设置
HTML 文档声明和语言设置
|
XML 存储 设计模式
XML(可扩展编辑语言) —— DTD
XML(可扩展编辑语言) —— DTD
60 2
html 重要概念之基础组成和语法规则
当今许多网站和应用程序都是通过 HTML 构建的。HTML 是一种标记语言,可用于创建网页结构和内容。在本文中,我们将介绍 HTML 的基础组成和语法规则。
88 0
|
XML 程序员 数据格式
【XML】学习笔记第二章-dtd
【XML】学习笔记第二章-dtd
289 0
【XML】学习笔记第二章-dtd
|
移动开发 开发者 HTML5
doctype文档类型|学习笔记
快速学习doctype文档类型
doctype文档类型|学习笔记