3. 命名空间(Namespaces)
- 元素名称必须(MUST)在命名空间中,除非是在扩展不使用命名空间的已有文档类型。
应该(SHOULD)使用默认命名空间。 [理由:
无命名空间的文档已经过时;每组名称都应在某个命名空间中。
使用默认命名空间可以提高可读性。]
\ - 属性名称不应该(SHOULD
NOT)在命名空间中,除非它们来自外部文档类型或旨在用于外部文档类型中。
[理由:
在命名空间中的属性名称必须始终有前缀,这不仅输入麻烦而且难以阅读。]
\ - 命名空间名称是 HTTP URI。 命名空间名称应该(SHOULD)采用
https://example.com/*whatever*/*year *
的形式,其中 whatever 是基于文档类型名称的唯一值,year
是命名空间创建的年份。 在 year 之前可能有额外的 URI 路径部分。
[理由: 现有惯例。 提供年份允许代码名称的可能回收。]
\ - 除非特定元素或属性的语义发生了极度不兼容的变化,否则禁止(MUST
NOT)更改命名空间。 [理由:
更改命名空间需要更改所有客户端代码。]
\ - 命名空间前缀应该(SHOULD)简短(但不能短到可能与其他项目冲突)。 禁止(MUST NOT)使用单字母前缀。前缀应该(SHOULD)只包含小写 ASCII 字母。 [理由: 便于输入且避免编码兼容性问题。]
\
Last updated on