2015-05-19 4 views
2

Согласно Википедии,Можете ли вы привести пример урну для частного использования

urn:<NID>:<NSS>

Ведущая урну: последовательность не чувствительны к регистру. <NID> - это идентификатор пространства имен, который определяет интерпретацию синтаксиса, специфичную для пространства имен. Функциональные требования для унифицированных имен ресурсов описаны в RFC 1737. [5]

Источник: http://en.wikipedia.org/wiki/Uniform_resource_name

А потом он продолжает говорить, что экспериментальная НИД предваряется X- но потом говорит:

RFC 6648 осуждает использование «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 (создание URN, которые используют x- недействительными).


Моя кишка говорит, что приставка x- ничего не получит, потому что два разработчики могли бы так же легко начать использовать urn:x-foo и не было бы отличаться, если бы они просто выбрали urn:foo, за исключением, возможно, что было бы ясно, что он официально не зарегистрирован в IANA.

Ну, RFC 3406 defines что

Никакое положение не сделано для предотвращения столкновения экспериментального НДИ

и что они

предназначен для использования в течение внутреннего или ограниченные экспериментальные контексты.

В первую очередь, вы не должны использовать экспериментальные NID таким образом, чтобы на них нападали другие участники (которые не знают о вашем использовании/определении этих экспериментальных NID).
Или другими словами: Столкновения экспериментальных NID должны быть беспроблемными, так как каждая сторона должна использовать их только внутренне или экспериментально и не должна ожидать, что сможет сделать что-нибудь полезное с экспериментальными NID, которые не находятся под их контролем.


Итак ...

  • Если вы хотите использовать урны только для личных целей, вы все равно можете использовать X- НДИ (следуя RFC 3406), пока он не получает нужные при новом RFC. В качестве альтернативы, вы можете отличать URN от example NID.

  • Если вы хотите публично/серьезно использовать URN, вы хотите, чтобы они были уникальными (избегая столкновений) и определялись (делая их полезными для других авторов и потребителей). В этом весь смысл URNs, верно? Для этого у вас есть, чтобы зарегистрировать свой NID.

  • Если вы не хотите регистрироваться, не используйте URN. Есть много других доступных URI schemes (например, приходят на ум).

+0

Я думаю, что это помогает, спасибо. Я буду ждать больше голосов. URNs выглядят как хороший выбор для языка программирования - агностического полностью квалифицированного имени. Поэтому, вместо того чтобы пытаться быть уникальным, я должен стараться держать их в тайне. –