我试图意识到以下xml文件的xmlns定义:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
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.xsd">
</beans>
我没有得到这里指定的schemaLocation。例如,为什么我应该在xmlns:mvc = "http://www.springframework.org/schema/mvc"
属性中添加http://www.springframework.org/schema/mvc
和schemaLocation
以在我的spring配置文件中使用mvc:xxx_something_xxx
?
我只想了解每次开始创建spring-mvc应用程序时的所作所为,而不仅仅是在不理解的情况下从谷歌进行复制粘贴。
答案 0 :(得分:2)
xmlns
定义了一个名称空间。如果要使用mvc:xxx
,则必须定义mvc
命名空间。
xsi:schemaLocation
定义了XSD(用于XML验证)的位置。
如果我没有弄错,最新的不是强制性的,但是如果你没有设置它,那么你可能会使用无效的XML而不会注意到它。
相关:
答案 1 :(得分:2)
这是两件不同的事情:
xmlns:mvc="http://www.springframework.org/schema/mvc"
是一个声明,在这里你说&#34;嘿,当我要使用&#34; mvc&#34;我的XML代码中的前缀我将使用此命名空间中的元素和类型&#34 ;;声明的命名空间应与所需模式中的 xmlns 属性匹配,以便识别它schemaLocation="http://www.springframework.org/schema/mvc"
是架构位置,就像java中的类路径或linux中的路径一样,它是XML处理器可以找到XSD架构文件的源列表;您希望的架构应位于此列表中,以便可以找到XSD文件如果没有声明,您就无法引用与当前架构命名空间不同的命名空间中的元素和类型(在您的情况下为xmlns="http://www.springframework.org/schema/beans"
)。
对于架构位置,您将收到无法找到元素或类型的错误。