Spring xml配置文件头解析

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的。说明它在真正处理的时候应该就是用的本地资源。
       用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。



  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值