<?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">
解释:
第一行:
<?xml version="1.0" encoding="UTF-8" ?>
version="1.0" 声明用的xml版本是1.0
encoding="UTF-8" 声明用xml传输数据的时候的字符编码,假如文档里面有中文,编码方式不是UTF-8,传输过去再解码的话中文就会是乱码
第一行:
<beans xmlns="http://www.springframework.org/schema/beans"
"xmlns"是XHTML namespace的缩写,叫做"名字空间"声明。 我的理解是:由于xml允许你自己定义自己的标识,你定义的标识和其他人定义的标识有可能相同,但表示不同的意义。当文件交换或者共享的时候就容易产生错误。为了避免这种错误发生,XML采用名字空间声明,允许你通过一个网址指向来识别你的标识。后面的URL用于标示命名空间的地址不会被解析器用于查找信息。其惟一的作用是赋予命名空间一个惟一的名称。这个URL甚至可以是我无法访问的。具体可以看看(w3c)[https://www.w3school.com.cn/xml/xml_namespaces.asp]的教程
总而言之就是通过URL来唯一标识这个xml的自定义标识,我们可以通过一个唯一的key来作区分。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
声明XML Schema实例名称空间([http://www.w3.org/2001/XMLSchema-instance]),并将xsi前缀与该名称空间绑定,这样模式处理器就可以识别xsi:schemaLocation属性。XML Schema实例名称空间的前缀通常使用xsi。
按照前面说的xmlns:xsi,就是定义了命名空间代号xsi,代表http://www.w3.org/2001/XMLSchema-instance这个 xmlns:xsi 在不同的 xml 文档中似乎都会出现。 这是因为, xsi 已经成为了一个业界默认的用于 XSD((XML Schema Definition) 文件的命名空间。 而 XSD 文件(也常常称为 Schema 文件)是用来定义 xml 文档结构的
Schema :概要,计划,图表 ,XML Schema Definition可以理解为xml文件的规范和约束
注解: XML 解析器可以根据 一个 XSD 文件的内容来解析另一个 XML 文件, 判断该文件的结构是否和 XSD 文件中定义的一致。 XSD 文件 可以理解为 XML 文档可以自定义的语法或格式检查器。
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"
有了上面的解释,这个xsi:schemaLocation也就好理解了,xsi:schemaLocation = "键" “值” "键" “值”,分别对应上面的两个代号,一共是两对
即 xsi 命名空间下 schemaLocation 元素的值为一个由空格分开的键值对。
"键" :【命名空间URL】
后一个值指代 【XSD location URI】 , 这个值指示了前一个命名空间所对应的 XSD 文件的位置, xml解析器可以根据这个获取到 XSD 文件, 从而通过 XSD 文件对所有属于 命名空间http://www.springframework.org/schema/beans“的元素结构进行校验, 因此这个值必然是可以访问的, 且访问到的内容是一个 XSD 文件的内容。
XSD本身也是一个xml文件,遵循XML格式