Skip to main content

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].