在说DTD之前,先简单的说一下什么是DTD,它是干什么的,有什么用。
文档类型定义可定义合法的标准通用标记语言、可扩展标记语言文档构建模块。它使用一系列合法的元素来定义文档的结构。 文档类型定义可被成行地声明于标准通用标记语言、可扩展标记语言文档中,也可作为一个外部引用。
通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。 通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。 而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。 您还可以使用 DTD 来验证您自身的数据
XML 文档构建模块 所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成: 元素 属性 实体 PCDATA CDATA 下面是每个构建模块的简要描述。
元素是 XML 以及 HTML 文档的主要构建模块。 HTML 元素的例子是 “body” 和 “table”。XML 元素的例子是 “note” 和 “message” 。元素可包含文本、其他元素或者是空的。空的 HTML 元素的例子是 “hr”、“br” 以及 “img”。
属性可提供有关元素的额外信息
实体是用来定义普通文本的变量。实体引用是对实体的引用。 大多数同学都了解这个 HTML 实体引用:" "。这个“无折行空格”实体在 HTML 中被用于在某个文档中插入一个额外的空格。
在XML加入DTD声明
元素定义的语法
<!ELEMENT element-name (type)>注:根标签也要定义!!!
元素的分类
<!ELEMENT element-name EMPTY>//空元素 <!ELEMENT element-name (#PCDATA)>//文本元素 <!ELEMENT element-name (e1,e2)>//混合元素<!ELEMENT name(#PCDATA)> 验证的类型 (#PCDATA):类必须为字符串类型 EMPTY:类型必须为空 ANY:任意类型
格式
<!ATTLIST 元素名称 属性名称 属性类型 属性验证>属性类型:
CDATA:只允许为字符串 ID:值只能是字母或下划线 枚举(类似与男女,true,false什么的 单选框功能)
属性验证: #REQUIRED:便是属性值不能为空 #IMPLIED:可为空可不为空 默认为空 #FIXED:有默认值
以下是我对DTD的一些理解与整理,希望对大家有一点帮助