你能举一个私人使用的URN的例子吗

Posted

技术标签:

【中文标题】你能举一个私人使用的URN的例子吗【英文标题】:Can you give an example of a URN for private-use 【发布时间】:2015-07-31 10:58:29 【问题描述】:

根据***,

urn:<NID>:<NSS>

前导 urn: 序列不区分大小写。 <NID> 是命名空间标识符,它决定了语法 <NSS> 的解释,命名空间特定的字符串。功能性的 RFC 1737 中描述了统一资源名称的要求。[5]

来源:http://en.wikipedia.org/wiki/Uniform_resource_name

然后它继续说实验性 NID 的前缀是 X-,然后说:

RFC 6648 不赞成对新 ID 名称使用“X-”表示法,但 不建议替换现有的“X-”名称,并且确实 不覆盖需要使用“X-”的现有规范。 [7]

那么现在呢?

如果我想为私有系统中的某些标识符组成一个 URN,我该如何正确命名它们?

我的直觉告诉我,x- 前缀没有任何好处,因为两个开发人员可以很容易地开始使用urn:x-foo,这与他们刚刚选择urn:foo 并没有什么不同,除了也许很明显,它没有在 IANA 正式注册。

因此,我们应该尝试制作一些独特的东西,并尽最大努力检查它是否存在。对吧?

【问题讨论】:

【参考方案1】:

As far as I know、RFC 6648 不会使experimental NIDs (as defined by RFC 3406) 无效。

draft for the next RFC about URNs(当前)已按照 RFC 6648 的建议删除了实验性 NID(使使用 x- 的 URN 无效)。


我的直觉告诉我,x- 前缀没有任何好处,因为两个开发人员可以很容易地开始使用urn:x-foo,这与他们刚刚选择urn:foo 并没有什么不同,除了也许很明显,它没有在 IANA 正式注册。

嗯,RFC 3406 defines 那

没有规定避免实验性 NID 的冲突

他们是

旨在在内部或有限的实验环境中使用。

因此,首先,您不应该以其他方(不知道您对这些实验性 NID 的使用/定义)会遇到它们的方式使用实验性 NID。 或者换句话说:实验性 NID 的冲突应该没有问题,因为每一方都应该只在内部或实验性地使用它们,并且不应该期望能够对不受其控制的实验性 NID 做任何有用的事情。


所以……

如果您只想将 URN 用于私人目的,您仍然可以使用 X- NID(按照 RFC 3406),直到它被新的 RFC 淘汰。或者,您可以从 example NID 铸造 URN。

如果您想公开/严肃地使用 URN,您希望它们是唯一的(避免冲突)和定义的(使它们对其他作者和消费者有用)。这就是 URN 的全部意义,对吧?为此,您必须注册您的 NID。

如果您不想注册,请不要使用 URN。还有许多其他URI schemes 可用(例如,Tag URIs 想到了)。

【讨论】:

我认为这会有所帮助,谢谢。我会等待更多的选票。对于与编程语言无关的完全限定名称,URN 看起来是一个不错的选择。因此,与其努力成为独一无二的,我应该努力保持它们的私密性。

以上是关于你能举一个私人使用的URN的例子吗的主要内容,如果未能解决你的问题,请参考以下文章

PHP中传值与传引用的区别 能举一个例子吗

ActiveMQ 是干啥的?有啥作用?能举个实际开发的例子吗

ActiveMQ 是干啥的?有啥作用?能举个实际开发的例子吗

查找复数的指数

如何使用 LibSVM 进行“多分类”方法?

EXCEL &符号是什么意思 能举几个例子加深理解吗?