<project xmlns="http://maven.apache.org/POM/4.0.0" --命名空间,类似包名,因为xml的标签可自定义,需要命名空间来区分
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" --xml遵循的标签规范
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
--用来定义xmlschema的地址,也就是xml书写时需要遵循的语法,
两部分组成,前面部分就是命名空间的名字,后面是xsd(xmlschema)的地址
xsi全名:xml schema instance
web-app是web.xml的根节点标签名称
version是版本的意思
xmlns是web.xml文件用到的命名空间
xmlns:xsi是指web.xml遵守xml规范
xsi:schemaLocation是指具体用到的schema资源
我来给你解释一下吧,首先这个文件是一个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"/>。
reference
http://bbs.csdn.net/topics/390751819