XML中DTD文档类型解析
1、何为DTDDTD的全称为Document Type Definition,是一种文件定义格式,它规定了XML文件结构为XML文件提供了语法与规则。在DTD中定义XML文件的结构,然后按照DTD的声明来编写XML文件。它就好像编程语言中的函数定义,在使用函数时要根据函数声明的格式进行来引用。



5、在元素声明中需要注意的主要是几种特殊的元素声明和子元素出现的次数、选择性、混合型,作用类似于编程语言中的算数和逻辑运算符。如下,为具有多种元素的DTD实例。

7、作用:标准化元素和属性,并为它们加上唯一标志;确保元素名称中没有冲突,并阐明了它们的来源。2.2.2 前缀标识在元素名和属性名前增加一个标识,以唯一区分当前元素或属性来自哪一个DTD,它常常和命名空间联合使用,如上例中的<h:table>和<c:table>。三、实体详解有了元素为什么还要引入实体呢?要想区分两者,首先要看实体引入的目的。实体机制是一种节省大量时间的工具,将多种不同类型的数据并入XML文档的方法。它就好像是面向对象的抽象类一样,把经常使用的抽象成一个实体,在使用它的地方可以直接引用,避免了重复。详细的说(1)代替无法输入的字符,键盘只有26个字母和一些简单的标点符号,而字符集中有成N多各种符号是无法在键盘中输入的。(2)代替一些与xml规范保留字相冲突的内容,如:< > 等等。(3)代替大段的重复的文本。实体引用按照引用的位置分为内部和外部两种,按照引用的内容分为一般和参数引用两种。下面看一个外部实体引用的实例:清单1:“2.dtd”的声明


8、1.参数实体清单1:test.dtd,在此该内容单独存在了一个dtd文件中是因为在内部DTD子集中。参数实体引用不能在标记声明内部出现,可以在标记声明允许出现的地方出现。然而,对于外部DTD子集,则没有这个限制。

9、清单3:使用IE8打开清单2的内容后

11、上面代码中的类和结构主要完成了XML文档的解析,并且在解析之前验证当前XML文件是否符合某个DTD的定义。在上面的代码运行前需要将需要验证的XML和提供规范化的DTD文档引入到当前ValidateDTD项目中,后运行上面的代码实例,该项目会在项目文件中自动查找规范的DTD,然后验证xml文件。