XML

XML 知识量:7 - 28 - 99

4.1 命名空间><

什么是命名空间- 4.1.1 -

命名空间是由零个或多个名称所组成的集合,在命名空间中,每个名称都是唯一的。

当在一个XML文档中同时使用多个DTD定义的元素时,可能会遇到由不同DTD定义的同名元素,这些元素名称相同,但含义确不同,命名空间就是用于解决如果正确使用同名元素问题。

使用命名空间- 4.1.2 -

命名空间使用前缀法来避免名称冲突,即在元素或属性原有名字前面加上不同的前缀,以使元素或属性隶属于不同的空间,其语法为:

<命名空间前缀:标记名称>

其中:命名空间前缀与标记名称之间用冒号(:)分隔。

W3C组织规定:在XML文档中,命名空间前缀使用统一资源标识符(URI)来表示,这样可确保命名空间全球唯一性。

直接使用URI来作为前缀会比较冗长,可以将URI地址声明给某个变量作为前缀,从而间接使用URI作为前缀,其语法为:

xmlns:前缀="命名空间URI"

下面是一个简单的示例:

<?xml version="1.0" encoding="UTF-8"?>
<a:student_list xmlns:a="http://www.a.com" xmlns:b="http://www.b.com">
    <a:student age="10">
        <a:number>20220101</a:number>
        <a:name>Bob</a:name>
        <a:class>1-1</a:class>
    </a:student>
    <a:student age="11">
        <a:number>20220102</a:number>
        <a:name>Jeff</a:name>
        <b:class>
            <b:part_1>1</b:part_1>
            <b:part_2>2</b:part_2>
        </b:class>
    </a:student>
</a:student_list>

其中,元素class是重名元素,通过定义命名空间a和b来进行区分。注意:元素student中的属性age也属于命名空间a中的属性。