xml中的xmlns,xmlns:xsi,xsi:schemaLocation有什么做用,若是没有会怎么样呢

如 maven 的 pom.xml 开头是下面这样的
谁能解释下,这东西有社么用,不写这东西又会怎么样的,官方拷贝来的说明文档就算了,我想要简明扼要的说明。
不胜感激
---------
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">apache

 

 

我来给你解释一下吧,首先这个文件是一个xml文件,那么他里面的全部内容都符合xml语法规范,开头的<project></project>这最外层一样也是一个xml文件的标签,后面那一长串也就是所谓的属性,其中xmlns表示命名空间,xmlns="http://maven.apache.org/POM/4.0.0" 这表示默认命名空间,而下面xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 这个命名空间里面的元素或者属性就必需要以xsi:这种方式来写,好比schemaLocation就是他的一个属性,因此写成xsi:schemaLocation,而默认命名空间不带相似xsi这种,其实xml标签名称有个专业叫法叫作QName,而若是没有前面的xsi:这种通常叫作NCName。因此你看mvn里面的<dependency>这种就是默认命名空间下面的元素,最后那一行就表示把定义这个命名空间的schema文件给引用进来,好让eclipse这类型工具可以解析和验证你的xml文件是否符合语法规范。等同于<import namespace="xxx" schemaLocation="xxx.xsd"/>。eclipse