1.DTD(Documnet Type Definition)

DTD即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
一个 DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。


DTD和XSD相比:DTD 是使用非 XML 语法编写的。
DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型 .
DTD 现在基本已被XSD文档取代,但是,仍有个别在使用 比如 Mybatis mapper xml文件

SYSTEM表示本地 PUBLC 表示网络
上面用的是公共DTD,DTD名称格式为"注册//组织//类型 标签//语言"
"注册" 指示组织是否由国际标准化组织(ISO)注册,+表示是,-表示不是;
"组织" 即组织名称,如:mybatis.org;
"类型" 一般是DTD;
"标签" 是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号,如Mapper 3.0。
"语言" EN指英语;
http://mybatis.org/dtd/mybatis-3-mapper.dtd 表示外部DTD文件URI


DTD基本语法:

其中:

  • ELEMENT是关键字,是不能修改的
  • NAME表示元素名称
  • CONTENT是元素类型,必须要大写!

XML配置文件说明_第1张图片

 

                                     一个.dtd文件


使用DTD验证模式需要在XML文件的头部声明

 
 
 
 <班级>   
      <学生>      
           <名字>小红      
           <年龄>10      
           <介绍>学习刻苦    
      
 

2.XSD(XML Schemas Definition)

XML Schema语言也就是XSD。XML Schema描述了XML文档的结构。检查该XML文档是否符合其要求。


XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。


首先说明最基本的头部命名空间信息,配置文件必须的部分,固定部分 xmlns="http://www.springframework.org/schema/beans" 声明xml文件默认的命名空间,表示未使用其他命名空间的所有标签的默认命名空间。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 声明XML Schema 实例,声明后就可以使用 schemaLocation属性了。
xmlns:context="http://www.springframework.org/schema/context" 这是spring配置文件里面需要使用到context的标签,声明前缀为context的命名空间,在容器启动的时候找到对应的命名空间处理器处理。当命名空间被定义在元素的开始标签中时,所有带有相同前缀的子元素都会与同一个命名空间相关联。
xsi:schemaLaction部分: http://www.springframework.org/schema/beans --- 表示区别命名空间url http://www.springframework.org/schema/beans/spring-beans.xsd --- 表示命名空间对应xsd文件获取地址(也只是一个映射地址)。

  • 容器启动时按照此顺序查找

在spring-webmvc.jar包中找到META_INF/spring.handlers

http\://www.springframework.org/schema/mvc=org.springframework.web.servlet.config.MvcNamespaceHandler

META_INF/spring.schemas

http\://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd=org/springframework/web/servlet/config/spring-mvc-3.0.xsd
http\://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd=org/springframework/web/servlet/config/spring-mvc-3.1.xsd
http\://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd=org/springframework/web/servlet/config/spring-mvc-3.2.xsd
http\://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd=org/springframework/web/servlet/config/spring-mvc-4.0.xsd
http\://www.springframework.org/schema/mvc/spring-mvc.xsd=org/springframework/web/servlet/config/spring-mvc-4.0.xsd