谁检查XML名称空间是否唯一?

时间:2016-10-04 14:00:12

标签: xml xsd namespaces

我理解XML名称空间必须是唯一的,以避免元素的名称冲突/冲突。但我不明白的是,这场冲突到底在哪里?谁将验证/验证命名空间的唯一性?

例如,考虑以下从堆栈溢出中的一个线程获取的示例:

<config xmlns:rnc="http://www.abcde.com/r1" xmlns:bsc="http//www.pqrs.com/r2">
  <rnc:node>
      <rnc:rncId>5</rnc:rncId>
  </rnc:node>

  <bsc:node>
      <bsc:cId>5</bsc:cId>
  </bsc:node>
</config>

现在www.abcde.com和www.pqrs.com是由不存在的网址组成的?谁验证/验证了真实性?我可以给一些随机关键字,它仍然可以工作?那么重点是什么呢?是否有一些中央存储库被调查?请以外行的方式澄清。

1 个答案:

答案 0 :(得分:1)

An XML namespace name URI need not be retrievable,并且没有中央权限来管理名称空间的使用或创建。有一个隐含的规范,只有域的持有者可以基于该域创建命名空间。

更新以在评论中解决OP的问题:

  

但我打算知道如果有两个人不情愿地使用同样的东西   命名空间,他们无法知道?

许多人可以在没有协调的情况下使用许多名称空间;这是命名空间的重点。

只有名称空间所在域的持有者才能使用该域定义命名空间。

  

此外,我在本地为2个不同的元素使用相同的命名空间   冲突会在当地发生吗?

使用具有相同名称空间的不同元素没有内在问题;事实上它很常见。

  

谁在本地检查了我的xml文件?有一些验证步骤吗?

可以针对XSD验证XML文件,XSD可以在定义中指定用于定义XML文件有效性的词汇表和语法规则的命名空间。