为什么在XML命名空间中我们不能使用随机字符串来代替URI?

3
我正在尝试理解XML命名空间约定(使用URI进行命名空间)。我已经阅读了StackOverflow上的这个帖子。我明白命名空间的全名应该是唯一的。但我仍然不明白为什么我们不能只使用随机字符串?例如,我们正在尝试在文件中区分真正的汽车和玩具汽车。
<?xml version="1.0" encoding="UTF-8"?>
<carstore xmlns:real="http://cxf.apache.org/jaxws/cars/real" xmlns:toy="http://cxf.apache.org/jaxws/cars/toy">
<real:car category="truck">
    <model lang="en">Scania R 770</model>
    <year>2005</year>
    <price currency="US dollar">200000.00</price>
</real:car>
<toy:car category="sedan">
    <title lang="en">Ford Focus</title>
    <year>2012</year>
    <price currency="US dollar">100.00</price>
</toy:car>
</carstore>


<?xml version="1.0" encoding="UTF-8"?>
<carstore xmlns:real="heroigairehgoiaer7272" xmlns:toy="289ry89fhfhbvnsdkljnv">
<real:car category="truck">
<model lang="en">Scania R 770</model>
<year>2005</year>
<price currency="US dollar">200000.00</price>
</real:car>
<toy:car category="sedan">
<title lang="en">Ford Focus</title>
<year>2012</year>
<price currency="US dollar">100.00</price>
</toy:car>
</carstore>

如果有人能解释一下为什么选择这个选项,我会非常感激。

xmlns:real="http://cxf.apache.org/jaxws/cars/real"

比这个更好:

xmlns:real="heroigairehgoiaer7272"

使用第二种方法可能会带来哪些负面后果?是否有任何现实生活的例子?

如果你不知道的话:你可以使用一个由随机字符串组成的URI,即 UUID,例如 urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 - unor
1个回答

3

随机、唯一的字符串可以用于命名空间,但是...

基于URI的命名空间比随机字符串更具优势:

  1. 利用域名的现有所有权机制避免了为控制命名空间而复制该功能的需要。
  2. 域名传达了所有权信息,有助于识别负责命名空间的方或项目。
  3. 虽然命名空间URI无需可获取,但通常是可获取的,从而作为检索主导模式或文档的便捷手段
  4. URI的层次结构可以反映名称集合的自然层次组织。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接