为什么我们不能对 XML 命名空间使用随机字符串而不是 URI?



我试图理解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 的命名空间具有优势:

  1. 利用 域名的就地所有权机制避免了 复制该功能以控制命名空间。
  2. 域名传达所有权,这对于识别 负责命名空间的参与方或项目。
  3. 尽管命名空间 URI 不必可检索,但它们可以是 通常是,因此可以作为检索治理模式的便捷手段 或文档。
  4. URI 的分层性质可以反映自然的分层 名称集合的组织。

最新更新