跳到主要内容

Appendix B. 相对于 RFC 2141 的变更

本文档对 RFC 2141 的语法和语义作出了实质性变更.

B.1. 语法变更

RFC 2141 中给出的 URN syntax 是在 RFC 3986 更新 URI 规范之前定义的. 本文档更新 URN syntax 定义, 以实现以下目标:

主要目标

  1. 确保与 URI syntax 一致
  2. 便于 URN 使用类似 URI query 和 fragment 的参数
  3. 允许影响 URN resolution 的参数
  4. 便于 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 系统的兼容性.