Appendix B. Changes from RFC 2141
This document makes substantive changes from the syntax and semantics of [RFC2141]:
B.1. Syntax Changes from RFC 2141
The syntax of URNs as provided in [RFC2141] was defined before the updated specification of URIs in [RFC3986]. The definition of URN syntax is updated in this document to do the following:
-
Ensure consistency with the URI syntax.
-
Facilitate the use of URNs with parameters similar to URI queries and fragments.
-
Permit parameters influencing URN resolution.
-
Ease the use of URNs with non-URN identifier systems that include the "/" character.
In particular, this specification does the following:
-
Extends URN syntax to explicitly allow the characters "/", "?", and "#", which were reserved for future use by RFC 2141. This change also effectively allows several components of the URI syntax although without necessarily tying those components to URI semantics.
-
Defines general syntax for an additional component that can be used in interactions with a URN resolution service.
-
Disallows "-" at the end of the NID.
-
Allows the "/", "~", and "&" characters in the NSS.
-
Makes several smaller syntax adjustments.
B.2. Other Changes from RFC 2141
-
Formally registers "urn" as a URI scheme.
-
Allows what are now called r-components, q-components, and f-components.
In addition, some of the text has been updated to be consistent with the definition of URIs [RFC3986] and the processes for registering information with the IANA [RFC5226], as well as more modern guidance with regard to security [RFC3552], privacy [RFC6973], and identifier comparison [RFC6943].