XML文档中很可能会定义许多名字相同而意义不同的元素或属性,尤其在把不同的XML文档合而为一时,更容易产生冲突。名称空间就是为了解决这个问题而提出的。它用URI(Uniform Resource Indicator,统一资源指示器)加以区别,是在XML文件的元素和属性中出现的所有名称的集合。如下例:
<pr:payment xmlns:pr=“http://www. microsoft.com/payroll”>
<pr:employee>Lars Peterson</pr:employee>
<pr:description>Reimburse expenses</pr:description>
<pr:total>199.76</pr:total>
</pr:payment>
有了名称空间,用户就可以保证在文件中使用的名称是唯一的。对元素的属性xmlns进行定义就表示对该元素指定了一个名称空间。namespace_name必须是一个有效的URI。
如果省略local_prefix(本地前缀),这时就构成了缺省名称空间: <payment xmlns=“http://www.microsoft.com/acct”>
<customer>1234</customer>
<amount>500.00</amount>
<date_received>12-03-2000</date_received> </payment>
如果对一个元素定义了缺省名称空间,那么该元素及其子元素,包括它们的属性都会自动地成为该名称空间的一部分,不用再在每一个元素和属性前面一一标明了。
<pr:payment xmlns:pr=“http://www. microsoft.com/payroll”>
<pr:employee>Lars Peterson</pr:employee>
<pr:description>Reimburse expenses</pr:description>
<pr:total>199.76</pr:total>
</pr:payment>
有了名称空间,用户就可以保证在文件中使用的名称是唯一的。对元素的属性xmlns进行定义就表示对该元素指定了一个名称空间。namespace_name必须是一个有效的URI。
如果省略local_prefix(本地前缀),这时就构成了缺省名称空间: <payment xmlns=“http://www.microsoft.com/acct”>
<customer>1234</customer>
<amount>500.00</amount>
<date_received>12-03-2000</date_received> </payment>
如果对一个元素定义了缺省名称空间,那么该元素及其子元素,包括它们的属性都会自动地成为该名称空间的一部分,不用再在每一个元素和属性前面一一标明了。