附录 B. 与 RFC 2141 的变更 (Changes from RFC 2141)
本文档对 RFC 2141 的语法和语义进行了实质性变更。
B.1. 语法变更
RFC 2141 中提供的 URN 语法是在 RFC 3986 更新 URI 规范之前定义的。本文档更新了 URN 语法定义,以实现以下目标:
主要目标
- 确保与 URI 语法的一致性
- 促进使用类似于 URI 查询和片段的参数的 URN
- 允许影响 URN 解析的参数
- 简化 URN 与包含 "/" 字符的非 URN 标识符系统的使用
具体变更
本规范进行了以下更改:
1. 扩展字符支持
扩展 URN 语法以明确允许字符 "/"、"?" 和 "#",这些字符在 RFC 2141 中被保留供将来使用。此更改还有效地允许 URI 语法的几个组件,尽管不一定将这些组件与 URI 语义联系起来。
2. 解析服务组件
定义了可在与 URN 解析服务交互时使用的附加组件的通用语法。
3. NID 限制
不允许在 NID 末尾使用 "-"。
4. NSS 字符集扩展
允许在 NSS 中使用 "/"、"~" 和 "&" 字符。
5. 其他调整
进行了几项较小的语法调整。
兼容性影响
这些变更提高了 URN 的灵活性和与现代 URI 系统的兼容性,同时保持了核心语义的稳定性。