xml Schema学习笔记

经常在配置文件中看见如下:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ----1
xmlns="http://java.sun.com/xml/ns/javaee" --------2
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"------3
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee --------4
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"------5
xmlns表示web-app节点下的元素与属性用到的命名空间
第1句表示要用http://www.w3.org/2001/XMLSchema-instance命名空间下的元素与属性,必须加上前缀xsi
即:想要写第4,5行,必须写上第1行。
第二句表示默认命名空间,web-app节点下的没有加前缀的元素与属性都是该命名空间下定义的。
xsi:schemaLocation 表示所引用命名空间的位置,以值对的形式表示,以空格分开,可以指定多个值对。
例如:4,5行表示命名空间http://java.sun.com/xml/ns/javaee的位置在http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd

4,5行也表示,文件http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd声明了该模式文件的命名空间是http://java.sun.com/xml/ns/javaee
用targetNamespace="..."在Schema文件中进行命名空间的声明。

 

命名空间,是一个唯一的标示,表示一个标签是在哪儿定义的,避免了两个Schema文件定义的标签名重复的问题。
Schema中的targetNamespace="..."的定义的命名空间的值要与xml文件中xmlns的值相同,也可以加个前缀。

你可能感兴趣的:(xml,Schema验证,Schema的命名空间)