Appendix B. 相对于 RFC 2141 的变更
本文档对 RFC 2141 的语法和语义作出了实质性变更.
B.1. 语法变更
RFC 2141 中给出的 URN syntax 是在 RFC 3986 更新 URI 规范之前定义的. 本文档更新 URN syntax 定义, 以实现以下目标:
主要目标
- 确保与 URI syntax 一致
- 便于 URN 使用类似 URI query 和 fragment 的参数
- 允许影响 URN resolution 的参数
- 便于 URN 与包含 "/" 字符的 non-URN identifier system 一起使用
具体变更
本规范进行以下变更:
1. 扩展字符支持
扩展 URN syntax, 明确允许 RFC 2141 保留供未来使用的字符 "/", "?" 和 "#". 该变更也实际允许 URI syntax 的若干组件, 尽管不一定将这些组件与 URI semantics 绑定.
2. Resolution Service 组件
为可在与 URN resolution service 交互中使用的附加组件定义通用语法.
3. NID 限制
不允许 NID 以 "-" 结尾.
4. NSS 字符集扩展
允许 NSS 中使用 "/", "~" 和 "&" 字符.
5. 其他调整
进行若干较小的语法调整.
兼容性影响
这些变更在保持核心语义稳定性的同时, 提高了 URN 的灵活性以及与现代 URI 系统的兼容性.