【spring入门级问题】spring.xml的以下这两种头文件中有什么区别?

第一种:
<?xml version="1.0" encoding="UTF-8"?> 
《beans》 xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
《beans/》
第二种:
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> 
《beans》
《beans/》

上面beans标签尖括号用的中文的书名号,不要在意
因为打不进去...

对使用来说没什么区别。只是Spring 会针对DTD和XSD采取不同的验证模式,对不同的验证模式会使用不同的解析器解析。
在验证XML时,Spring会读取到publicId和systemId。
如果是XSD 则读取到:
publicId:null
systemId:http://www.springframework.org/schema/beans/spring-beans.xsd

如果是DTD 则读取到:
publicId:-//SPRING//DTD BEAN//EN
systemId:http://www.springframework.org/dtd/spring-beans.dtd

然后根据systemId的后缀,来进行不同的解析。

有兴趣可以看一下《Spring 源码深度解析》,里面有具体的讲解Spring怎么验证XML的

另外XSD和DTD的区别参考文章:
http://blog.csdn.net/ningguixin/article/details/8171581

下面的是低版本,使用dtd文件验证,
上面的高版本,使用xsd验证
没有本质区别