本着精简不罗嗦以及清晰理解的原则,直接上代码进行详解。
<project xmlns="http://maven.apache.org/POM/4.0.0"
--命名空间,类似包名,因为xml的标签可自定义,需要命名空间来区分。起作用只是表示一个元素的范围,在一份XML文档中可能有多个元素相同,这时XMLns就显得非常重要了。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--web.xml遵循的xml标签规范。这个命名空间里面的元素或者属性就必须要以xsi:这种方式来写,比如schemaLocation就是他的一个属性,所以写成xsi:schemaLocation,而默认命名空间不带类似xsi这种,其实xml标签名称有个专业叫法叫做QName,而如果没有前面的xsi:这种一般叫做NCName。所以你看mvn里面的<dependency>这种就是默认命名空间下面的元素,最后那一行就表示把定义这个命名空间的schema文件给引用进来,好让eclipse这类型工具能够解析和验证你的xml文件是否符合语法规范。等同于<import namespace="xxx" schemaLocation="xxx.xsd"/>。
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
--是指具体用到的schema资源
http://maven.apache.org/xsd/maven-4.0.0.xsd">--用来定义xmlschema的地址,也就是xml书写时需要遵循的语法,两部分组成,前面部分就是命名空间的名字,后面是xsd(xmlschema)的地址
如有更好的解释和观点,欢迎各位参与讨论。