通常教程会告诉您在创建新的XML命名空间时使用自己的域名。并非每个人都拥有一个域名,它需要花钱,而且该站点可能与您使用XML的目的无关。
什么是好的选择?
在this answer中,示例只有some_identifier
,但Wikipedia表示它是一个URI。 URI可以是URL或URN。
URL可以提供指向架构的链接,但命名空间的主要目的是成为唯一标识符,因此URN更适合。
如何生成唯一标识符? UUID适用于标识符,所以我搜索了W3C上的一个例子:
<?xml:namespace ns='urn:uuid:C4ED1820-6207-11d1-A29F-00AA00C14882/'
src='http://www.w3.org' prefix='w3c' ?>
为什么人们不经常使用UUID? UUID名称空间有哪些缺点或基于域的名称空间的优点?如果您的域名过期,您可能会失去它并且必须更改所有名称空间。
答案 0 :(得分:1)
除了DNS域名和XML命名空间之间的偶然事件之外没有任何联系。
如果您有DNS域名并希望在XML命名空间中使用它,则可以。如果您没有DNS域名或者不想在XML命名空间中使用它,那也没关系。
UUID通常不用于XML命名空间,因为它们不是很有意义 - 类似于通常使用主机和放大器。 IP地址上的域名。
答案 1 :(得分:1)
如果您想要一个可读的,全球唯一的标识符,只要求您在某个时间点声明域名或电子邮件地址的所有权,则可以使用tag URI。例如:
tag:user@example.com,2007-11-02:Tag_URI
urn:uuid
完全有效,但有时可以更容易发现具有更多结构的标识符,或允许关联相关名称空间。
答案 2 :(得分:1)
This question是一个类似的问题。 Java Specification建议了域约定,但它不是强制性的。他们的选择解释如下:
生成唯一包名称的建议约定仅仅是在现有的,广为人知的唯一名称注册表之上搭载包命名约定的方法,而不是必须为包名创建单独的注册表。
以下是一些选项及其主要优点和缺点。
优点:
缺点:
优点:
缺点:
优点:
缺点:
来自Joe's answer。
优点:
缺点:
优点:
缺点:
我认为最终的最佳解决方案是UUID加上可能是规范的项目名称(如果您想更改名称,可能会遇到问题)。域/电子邮件与项目无关,只是提供唯一性的一种方式,UUID已将其废弃。