Appropropriate URN namespace now that X
As recently as 2002 the IETF was recommending in RFC 3406 that we should use x-
prefixes for URN namespaces we didn't want to register, eg urn:x-acme:foobar
. Now that the IETF has deprecated the x-
prefix in RFC 6648, how are we supposed to construct URNs for namespaces we don't intend to register?
As an aside, I note that RFC 6648 specifically mentions URNs: "In almost all application protocols that make use of protocol parameters (including ... URNs ...), the name space is not limited or constrained in any way, so there is no need to assign a block of names for private use or experimental purposes." I find this an odd thing to say, as RFC 3406 claims, "The space of URN namespaces is managed. Ie, not all syntactically correct URN namespaces (per the URN syntax definition) are valid URN namespaces."
So what is best to use for custom but unregistered URN namespaces? Can I just drop the x-
and use, for my example company Acme, a URN such as urn:acme:foobar
?
RFC 6648 says:
Does not override existing specifications that legislate the use of "X-" for particular application protocols […]; this is a matter for the designers of those protocols.
So it's still fine to use experimental NIDs as defined by RFC 3406.
And what RFC 6648 recommends for new protocols (and, I assume, updates of existing protocols) is essentially what is currently the case with URNs anyway (minus the experimental X-
prefix):
So in case experimental X-
NIDs should get deprecated in an updated RFC, I wouldn't expect an alternative to having to register NIDs.
If you don't want to register NIDs (even not an Informal NID), you might want to use a different URI scheme. tag
comes to mind ( tag:example.com,2013:foobar
).
上一篇: 自定义(NFC)NDEF格式
下一篇: 适当的URN命名空间现在是X.