文档类型声明:
个人理解:
"文档类型声明"主要用来声明XML文档中的元素、元素中的属性、元素与元素之间的结构关系、元素是否为空元素和元素之间包含的数据类型等使用的是哪一种规范。注意,文档类型声明仅仅是声明了遵循一个规范,而规范的具体是内容是在DTD文件中定义的,关于DTD文件下面会有具体讲解,这里先理解为DTD文件中定义了XML文档中元素使用的详细规范。
在这里先理解为文档类型声明就是声明了XML文档中的元素遵循了哪些规范,但规范的具体内容不归它负责。例如:我说我家里有辆车,但是这个车是什么牌子,颜色等等这些信息都在一个形容车的文件中放着呢,你如果想知道我的车的具体情况可以去看那个文件,而我只是让你知道我有一辆车。
问题1?为什么要声明XML文档使用了某些规则呢?或者说为什么要对XML文档中元素的使用制定一个规则呢?
简单来,多个人共同协作完成一件事情是要一套规则和规定的,否则是没办法通力合作的。对于XML文档来说,符合统一规则的XML文档就可以实现数据共享,和多个人共同合作完成过项目的开发。
因为我们在使用XML的时候,里面所有的标记都是我们自己定义的。那么对于同一个问题,不同的XML编程人员在设计XML标签和内容结构的时候可能完全不同,如果多个人共同做一件事情而没有一个统一的标准进行规定是没有办法一起合作的,所以文档类型声明实际上就是提供了一个标准和准则,这个准则当然是我们程序员自己的定义的了,但是我们在编写XML文档的时候,都遵循这一准则就能够相互合作,数据共享了。
例如我们使用的HTML,他也有自己的文档类型声明,例如我们在使用HTML5的时候,遵循的就是HTML5的文档类型声明,所以我们可以做到多个人用HTML开发同一个项目。
其实在理解计算机编程语言中的概念的时候,首先要知道它理论上是一个什么东西。对于文档类型声明来说,简单的来说就是告诉编程人员和XML的处理器我使用的XML文中使用了哪种规范,都使用这一规范就可以共同开发XML项目。
详细的,文档类型声明实质声明的是所使用是DTD,对于一个XML文档实际是通过DTD来对XML文档中的元素进行规则制定。这就类似我们C语言中函数的声明和函数的定义关系,函数声明可以让程序知道使用了哪些函数,但是具体这些函数是什么有什么功能还是要看函数定义中的内容。所以文档类型声明实际上就是声明使用了哪些DTD,具体DTD的内容是什么要看具体的DTD文件中的内容。
所以,文档类型声明只是指明了使用的是哪个DTD,DTD才是对XML文档中的元素进行了相应的规则制定。
DTD(Document Type Definition),文档类型定义
XML从SGML继承了用于定义语法规则的DTD机制,但DTD本身并不要求遵循XML规则,几乎所有的XML文档应用都有DTD来定义的。HTML就有一个标准的DTD文件,所以其组织结构和是多有的标签都是固定的,DTD文件也是一个文本文件,通常用".dtd"作为其扩展名。
个人理解:DTD用来定义文档的使用规则,DTD有一套自己遵循的语法规则,本身是一个文本文件,扩展名为“.dtd”
个人理解:文档类型声明指出XML使用的是那种DTD——哪种文档类型定义,再通过文档类型定义来实现对XML文档中元素的使用规则和含义及其结构等。
通过文档类型声明,指出XML所用的DTD,文档类型声明有两种形式,一种是声明DTD在一个外部文件中,一种是在XML文档中直接给出。
这里,可以比较CSS和HTML的形式来辅助记忆,CSS有三种形式,其中的两种一种是在一个外部CSS文件中,一种是在HTML的内部。这里不考虑CSS的“内嵌式”,只考虑外部和内部的CSS形式。且也有自己的一套语法规则。
第一种形式:DTD在一个外部文件中,有两种写法
//注意,文件名不单单值文件的名称,共包括路径、文件名称、扩展名
第二种形式:简单的理解为
中括号"[]"里面进行了DTD定义