2015-05-19 23 views
2

根據維基百科,你能給一個URN的例子供私人使用的

urn:<NID>:<NSS>

領先的骨灰盒:順序不區分大小寫。 <NID> 是命名空間標識符,它確定<NSS>(命名空間特定的字符串)的語法 的解釋。 RFC 1737中描述了對統一資源名稱的功能要求。[5]

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

然後它接着說,實驗NID前綴X-但接着說:

RFC 6648不贊成使用新的 「X-」 符號的ID名稱,但 不會替代現有的「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(使URN使用x-無效)。


我的直覺說,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)。

+0

我覺得這會有所幫助,謝謝。我會等待更多的選票。對於編程語言不可知的完全限定名稱,URN看起來是一個不錯的選擇。因此,我不應該努力保持獨特性,而應該努力保持它們的私密性。 –

相關問題