Schema是用于描述和规范XML文档的逻辑结构的一种语言,它最大的作用就是验证XML文件逻辑结构的正确性。可以理解成与DTD(文档类型定义)功能差不多,但是Schema在当前的WEB开发环境下优越很多。因为它本身就是一个有效的XML文档,因而可以更直观地了解XML的结构。除此之外,Schema支持命名空间,内置多种简单和复杂的数据类型,并支持自定义数据类型。由于存在这么多的优点,所以Schema渐渐成为XML应用的统一规范。
下面我们就对schema的命名空间进行介绍:
上图就是我们新建的一个schema文件,targetNamespace表示自己这个文档的命名空间,还可以方便其他schema文件或者xml文件引用,xmlns:tns="http://www.example.org/01" 这个名称和自己的命名空间名称一致,但是增加了tns的前缀,此时如果要引用当前schema文件所创建的类型,就需要加上tns前缀。
另外需要注意,一个schema文件中,只能有一个默认的命名空间,一般是把schema自带的文件作为默认命名空间。xmlns="http://www.w3.org/2001/XMLSchema" ,没有前缀的就是默认的,默认的可以自己修改。
上图为一个xml,该xml使用刚刚定义的01.xsd schema文件作为默认命名空间,然后根据01.xsd中所新建的元素类型书写了进来,需要注意,跟元素为这个user元素。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"这句话创建了一个可以引入其他schema文件的命名空间,xsi:schemaLocation="http://www.example.org/01">这句话表示引入其他命名空间,引入了我们刚才创建的01.xsd的命名空间,然后作为了我们的默认命名空间。