在研究Spring如何获取对象的时候,xsi:schemaLocation突然爆出URL必须是偶数个,从来没有对applicationContext.xml文档头关注过,只是copy过来就用了
利用xmlns就是防止同时两个xml被同时使用时,两个文档带有不同的内容和定义的元素,XML解析器无法如何处理这些问题,会发生命名冲突。
用xmlns就是为了给他对应url指定一个命名前缀,比如:
xmlns:context="http://www.springframework.org/schema/context"
<context:component-scan base-package="com.example"/>
语法大概就是:xmlns:namespace-prefix="namespaceURI"
保证"namespace-prefix"这个不重复就行,再次引用这个namespaceURI,需要用这个"namespace-prefix"去调用
xmlns 和 xmlns:xsi
xmlns表示默认的Namespace,默认的XML Namespace为http://www.springframwork.org/schema/beans,默认的Namespace中的元素,可以不使用前缀。
xmlns:xsi表示使用xsi作为前缀的Namespace,当然前缀xsi需要在文档中声明。
xsi:schemaLocation的作用
xsi:schemaLocation属性其实是Namespace为http://www.w3.org/2001/XMLSchema-instance里的schemaLocation属性。
定义了XML Namespace和对应的XSD(Xml Schema Definition)文档的位置的关系。它的值由一个或多个URI引用对组成,两个URI之间以空白符分隔(空格和换行均可)。第一个URI是定义的XML Namespace的值,第二个URI给出Schema文档的位置,Schema处理器将从这个位置读取Schema文档,该文档的targetNamespace必须与第一个URI相匹配。
一切以 xsi:schemaLocation=“”为准,也就是说xsi:schemaLocation包含的部分一定要出现在名字空间中