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

问题描述 投票:2回答:1

我试图理解XML命名空间约定的原因(使用名称空间的URI)。

我在StackOverflow上读过this thread。我知道名称空间的全名应该是唯一的。但我仍然不明白为什么我们不能只使用随机字符串呢?

例如,我们试图在我们的文件中区分真正的汽车和玩具车:

<?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"

我们使用第二个会带来什么负面影响?可能有任何现实生活中的例子吗?

xml xsd uri xml-namespaces xml-validation
1个回答
3
投票

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

基于URI的命名空间提供优于随机字符串的优势:

  1. 利用域名的就地所有权机制可以避免必须复制该功能以控制命名空间。
  2. 域名通信所有权,这对于识别负责命名空间的一方或项目很有用。
  3. 尽管namespace URIs do not have to be retrievable,它们可以并且经常是,因此可以作为检索管理模式或文档的便捷方式。
  4. URI的层次性可以反映名称集合的自然层次结构。
© www.soinside.com 2019 - 2024. All rights reserved.