详解 xml 文件头部的 xmlns:xsi

xmlns:(XML Namespaces的缩写)是一个属性,是XML(标准通用标记语言的子集)命名空间的声明。作用是赋予命名空间一个唯一的名称。

命名空间是什么呢?

由于xml允许你自己定义自己的标识,你定义的标识和其他人定义的标识有可能相同,但表示不同的意义。当文件交换或者共享的时候就容易产生错误。为了避免这种错误发生,XML采用名字空间声明,允许你通过一个网址指向来识别你的标识。比如下面的例子:


Apples Bananas
African Coffee Table80120

第一个

表示表格,而第二个
表示家居桌子。如果我需要同时处理这两个文档,就会发生名字冲突。为了解决这个问题,我们引进了Namespaces这个概念。Namespaces通过给标识名称加一个很长的可以保证全局唯一性的字符串与该元素关联起来,这样就可以避免命名冲突了。是如何保证那个较长的字符串全局唯一呢?最好的方式莫过于使用 统一资源标识符(Uniform Resource Identifier,URI) 了, 而我们最常见的 URI 就是平时经常访问的网址 URL 了,所以经常用网址(URL)定位的方法来区别这些名称相同的标识,比如:

xmlns:namespace-prefix="namespaceURI"

namespace-prefix:表示命名空间的前缀,即我们自己定义的标识。

namespaceURI:用来唯一标识一个命名空间的网址

应用到我们所举的例子中就是:



   
   Apples
   Bananas
   



   African Coffee Table
   80
   120

实战举例解析:




    
    

    
    
        
        
            
                
                
                
            
        
    

 第一部分:


 ......

定义一个beans标识,采用的是默认命名空间方法,即:

第二部分:

定义一个batch标识

第三部分:



 
      ......


根据之前的知识我们可以理解, xmlns:xsi 定义了一个命名空间前缀 xsi ,对应的唯一字符串 http://www.w3.org/2001/XMLSchema-instance。 但是读者会发现, 这个 xmlns:xsi 在不同的 xml 文档中似乎都会出现。 这是因为, xsi 已经成为了一个业界默认的用于 XSD((XML Schema Definition) 文件的命名空间。 而 XSD 文件(也常常称为 Schema 文件)是用来定义 xml 文档结构的。

注解: XML 解析器可以根据 一个 XSD 文件的内容来解析另一个 XML 文件, 判断该文件的结构是否和 XSD 文件中定义的一致。 XSD 文件 可以理解为 XML 文档可以自定义的语法或格式检查器。
那么, 有了上述的理解, 再来看xsi:schemaLocation这里的语法其实是: 

xsi:schemaLocation = "" “

"":用来唯一标识一个命名空间的网址

”:指代 【XSD location URI】 , 这个值指示了前一个命名空间所对应的 XSD 文件的位置, xml parser 可以利用这个信息获取到 XSD 文件, 从而通过 XSD 文件对该自定义标识(即命名空间)的元素结构进行校验, 因此这个值必然是可以访问的, 且访问到的内容是一个 XSD 文件的内容。

比如:

xsi:schemaLocation="http://www.springframework.org/schema/beansbeanshttp://www.springframework.org/schema/beans/spring-beans.xsdbeans
http://www.springframework.org/schema/batchbatchhttp://www.springframework.org/schema/batch/spring-batch.xsdbatch)"

参考:

详解 xml 文件头部的 xmlns:xsi_萧萧的专栏-CSDN博客

HTML xmlns 属性

有关xml中的xmlns - 天~宇~翱~翔 - 博客园

你可能感兴趣的:(xml,xml)