Appendix B. Changes from RFC 2141
This document makes substantive changes from the syntax and semantics of RFC 2141.
B.1. Syntax Changes
The syntax of URNs as provided in RFC 2141 was defined before the updated specification of URIs in RFC 3986. The definition of URN syntax is updated in this document to achieve the following goals:
Main Objectives
- 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
Specific Changes
This specification does the following:
1. Extended Character Support
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.
2. Resolution Service Component
Defines general syntax for an additional component that can be used in interactions with a URN resolution service.
3. NID Restrictions
Disallows "-" at the end of the NID.
4. NSS Character Set Extension
Allows the "/", "~", and "&" characters in the NSS.
5. Other Adjustments
Makes several smaller syntax adjustments.
Compatibility Impact
These changes improve URN flexibility and compatibility with modern URI systems while maintaining stability of core semantics.