URN
Click on the red underlined text to get to the source
...
Uniform Resource Names (URNs) are intended to serve as persistent,
location-independent, resource identifiers and are designed to make
...
... resource identifiers and are designed to make
it easy to map other namespaces (which share the properties of URNs)
into URN-space. Therefore, the URN ...
... namespaces (which share the properties of URNs)
into URN-space. Therefore, the URN syntax provides a means to encode
character data in a form that can be sent in existing protocols,
...
... URNs)
into URN-space. Therefore, the URN syntax provides a means to encode
character data in a form that can be sent in existing protocols,
transcribed on most keyboards, etc.
...
...
All URNs have the following syntax (phrases enclosed in quotes are
REQUIRED):
...
... 1737 [3] each presents additional considerations
for URN encoding, which have implications as far as limiting syntax.
On the other hand, the requirement ...
... canonical representation
of the NSS portion of an URN. The format of this single canonical
form follows:
...
... URN ...
... identifiers in a
namespace might contain characters that are not members of the URN
character set above (<URN chars> ...
... otherwise passing them on to other applications. Translation is done
by encoding each character outside the URN character set as a
sequence of one to six octets using UTF-8 encoding ...
...
The "%" character is reserved in the URN syntax for introducing the
escape sequence for an octet. Literal use of the "%" character in a
...
... Literal use of the "%" character in a
namespace must be encoded using "%25" in URNs for that namespace.
The presence of an "%" character in an URN ...
... URNs for that namespace.
The presence of an "%" character in an URN MUST be followed by two
characters from the <hex> character set ...
...
Namespaces MAY designate one or more characters from the URN
character set as having special meaning for that namespace ...
... 1630 [2] reserves the characters "/", "?", and "#" for particular
purposes. The URN-WG has not yet debated the applicability and
precise semantics ...
... WG has not yet debated the applicability and
precise semantics of those purposes as applied to URNs. Therefore,
these characters are RESERVED for future developments. Namespace
...
...
The following list is included only for the sake of completeness.
Any octets/characters on this list are explicitly NOT part of the URN
character set, and if used in an URN ...
... <excluded>) is encountered. The character from the excluded
character set is NOT part of the URN.
...
... Any namespace (existing or newly-devised) that is proposed as an
URN-namespace and fulfills the criteria of URN-namespaces ...
... URN-namespace and fulfills the criteria of URN-namespaces MUST be
expressed in this syntax. If names in these namespaces ...
... expressed in this syntax. If names in these namespaces contain
characters other than those defined for the URN character set, they
MUST be translated into canonical form ...
... URN syntax defines the canonical format for URNs and all URN
transport and interchanges MUST take place in this format. Further,
...
... transport and interchanges MUST take place in this format. Further,
all URN-aware applications MUST offer the option of displaying URNs
in this canonical form ...
... transport and interchanges MUST take place in this format. Further,
all URN-aware applications MUST offer the option of displaying URNs
in this canonical form to allow for direct transcription (for example
...
... canonical form to allow for direct transcription (for example
by cut and paste techniques). Such applications MAY support display
of URNs in a more human-friendly form and may use a character set
that includes characters that aren't permitted in URN ...
... URNs in a more human-friendly form and may use a character set
that includes characters that aren't permitted in URN syntax as
defined in this RFC (that is, they may replace %-notation by
characters in some extended character set ...
... Lexical Equivalence in URNs ...
...
For various purposes such as caching, it's often desirable to
determine if two URNs are the same without resolving them. The
general purpose means of doing so is by testing for "lexical
equivalence" as defined below.
...
...
Two URNs are lexically equivalent if they are octet-by-octet equal
after the following preprocessing:
...
... MUST always have the effect of eliminating some of the false
negatives obtained by the procedure above, and MUST NEVER say that
two URNs are not equivalent if the procedure above says they are
equivalent.
...
...
The following URN comparisons highlight the lexical equivalence
definitions:
...
...
1- URN:foo:a123,456
2- urn:foo:a123,456
3- urn:FOO:a123,456
...
... 4- urn:foo:A123,456
5- urn:foo:a123%2C456
6- URN:FOO:a123%2c456
...
...
URNs 1, 2, and 3 are all lexically equivalent. URN 4 is not
lexically equivalent any of the other URNs ...
...
URNs 1, 2, and 3 are all lexically equivalent. URN 4 is not
lexically equivalent any of the other URNs of the above set. URNs ...
... URNs 1, 2, and 3 are all lexically equivalent. URN 4 is not
lexically equivalent any of the other URNs of the above set. URNs 5
and 6 are only lexically equivalent to each other.
...
... URN 4 is not
lexically equivalent any of the other URNs of the above set. URNs 5
and 6 are only lexically equivalent to each other.
...
... Functional Equivalence in URNs ...
... include guidance on how to determine functional equivalence for that
namespace, i.e. when two URNs are the identical within a namespace.
...
...
This document specifies the syntax for URNs. While some namespaces
resolvers may assign special meaning to certain of the characters of
...
...
Thanks to various members of the URN working group for comments on
earlier drafts of this document. This document is partially
...
... Sollins, K. R., "Requirements and a Framework for URN Resolution Systems," Work in Progress. ...
...
The URN syntax has been defined so that URNs can be used in places
where URLs are expected. A resolver that conforms to the current URL
syntax ...
... URL resolvers and passed
(with the "urn:" tag) to an URN resolver for resolution. The URN
resolver can either be an external resolver that the URL ...
... (with the "urn:" tag) to an URN resolver for resolution. The URN
resolver can either be an external resolver that the URL resolver
...
... To avoid confusion of users, an URL browser SHOULD display the
complete URN (including the "urn:" tag) to ensure that there is no
confusion between URN namespace ...
... URN (including the "urn:" tag) to ensure that there is no
confusion between URN namespace identifiers and URL scheme
...
