深入解析XML中的DTD文档类型定义

这篇文章主要介绍了XML中的DTD文档类型定义,是XML入门学习中的基础知识,需要的朋友可以参考下

XML 文档类型定义,俗称 DTD,它是一种准确描述 XML 语言的方式。DTDs 根据适当 XML 语言的语法规则检查 XML 文档的词汇和结构的有效性。

XML DTD 可以指定在文档内部,也可以保存在独立的文档中然后单独链接。

语法
DTD 的基本语法如下所示:

XML/HTML Code复制内容到剪贴板
  1. [   
  2.     declaration1   
  3.     declaration2   
  4.     ........   
  5. ]>  

上述语法中:

DTD 以 element 用于告诉解析器从指定的根元素开始解析文档。
DTD identifier 是一个用于文档类型定义的标示符,它可以是一个指向系统中某个文件的路径或者连接到互联网上某个文件的 URL。如果 DTD 指向外部路径,则被称为外部子集。 _ [] 内是一个可选的实体声明列表,被称为内部子集。
内部 DTD
如果一个元素声明在 XML 文档的内部则 DTD 被称为内部 DTD。为了把它作为内部 DTD,XML 声明中的 standalone 属性必须设置为 yes。这意味着,声明的工作独立于外部源。

语法

内部 DTD 语法如下所示:

XML/HTML Code复制内容到剪贴板
  1. >  

这里 root-element 是根元素的名称,element-declarations 表示我们声明的元素。

示例

下面是一个内部 DTD 的简单示例:

XML/HTML Code复制内容到剪贴板
  1. xml version="1.0" encoding="UTF-8" standalone="yes" ?>  
  2. >  
  3.     >  
  4.     >  
  5.     >  
  6. ]>  
  7. <address>  
  8.     <name>Tanmay Patilname>  
  9.     <company>TutorialsPointcompany>  
  10.     <phone>(011) 123-4567phone>  
  11. address>  

我们来看一下上面的代码:

开始声明 - 使用如下语句开始 XML 声明:

XML/HTML Code复制内容到剪贴板
  1. xml version="1.0" encoding="UTF-8" standalone="yes" ?>  

DTD - 紧跟在 XML 头后面,_文档类型声明_如下,通常被称为 DOCTYPE:

DOCTYPE 声明在元素名称的开头包含一个感叹号(!)。DOCTYPE 会通知解析器有一个 DTD 与这个文档相关联。

DTD Body - DOCTYPE 声明后面紧跟 DTD 体,这里我们声明元素,属性,实体和符号: