Spring xml配置文件头解析

2023-05-16

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-3.0.xsd">

</beans>

添加注解后的格式:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	         http://www.springframework.org/schema/beans/spring-beans.xsd
		 http://www.springframework.org/schema/context 
		 http://www.springframework.org/schema/context/spring-context-4.0.xsd">
	
</beans>
一、要搞明白这些文件格式的意义,首先得明白XML的命名空间的作用:

(参考自:http://blog.csdn.net/zhch152/article/details/8191377)


问题的出现:
    XML的元素名字是不固定的,当两个不同的文档使用同样的名称描述两个不同类型的元素的时候,或者一个同样的标记表示两个不同含义的内容的时候,就会发生命名冲突。
问题的解决:
    命名空间(Namespace),对于每一套特定应用的DTD,给它一个独一无二的标志来代表,如果在XML中使用DTD中定义的元素,需将DTD的标志和元素名,属性连在一起使用,
相当于指明了元素来自什么地方,这样就不会同其他同名元素混淆了(有点类似Java中包的作用,给它取个全名)。在XML中,采用现成的,在全球范围唯一的“域名”作为Namespace,
即URL作为XML的Namespace。命名空间允许我们在一个文档中结合不同的元素和属性定义,并指明这些元素和属性的定义来自那里。

命名空间的语法如下:
   xmlns:[prefix]=”[url of name]”
其中“xmlns:”是必须的属性。“prefix”是命名空间的别名,它的值不能为xml。
例如:

  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


二、解释一下Spring配置文件头

1、xmlns="http://www.springframework.org/schema/beans"
   声明xml文件默认的命名空间,表示未使用其他命名空间的所有标签的默认命名空间。


2、xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   声明XMLSchema 实例名称空间,并将xsi前缀与该名称空间绑定,这样模式处理器就可以识别xsi:schemaLocation属性。
   XML Schema实例名称空间的前缀通常使用xsi。


3、使用xsi:schemaLocation属性指定名称空间http://www.springframework.org/schema/beans
   和模式位置http://www.springframework.org/schema/beans/spring-beans-3.0.xsd相关。


4、添加注解后多的xmlns:context="http://www.springframework.org/schema/context"是添加了context的命名空间,关于Spring上下文的,包括加载资源文件!

(参考http://iswift.iteye.com/blog/1657537 以及http://blog.csdn.net/zhch152/article/details/8191377)


三、该配置文件需要联网吗?
        spring的命名空间引用的虽然是网上的xsd文件,但你如果在断网情况下,照样是可以正常运行spring的。说明它在真正处理的时候应该就是用的本地资源。
       用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring xml配置文件头解析 的相关文章

随机推荐