XML命名空间URI的良好或通用命名约定

时间:2011-01-07 07:00:22

标签: xml naming-conventions xsd xml-namespaces

我正在寻找一些关于xsd目标命名空间的良好命名约定的想法。

基本上我只需要明确决定如何命名我的xsd的目标命名空间,所以我试着在第一次就把它弄好。稍后更改它将需要更改另一个不受我控制的系统。

您对过去的XML模式创建有什么经验吗?我试图在线查找信息,但大多数示例只使用非常通用的目标命名空间,如“http:// exampleSchema”等。我实际上是想找到一些现实生活中的例子。

1 个答案:

答案 0 :(得分:16)

W3C自己的长期URI选择实践是XML命名空间URI的一个很好的基线。有关一些建议,请参阅Cool URIs don't change,但命名空间URI无需可检索,因此某些指南可能不适用。

  • 使用明确与规范所有者相关联的前缀,例如Web服务器的URI。如果架构可以在线获得,那么如果可以在其命名URI中找到它,那将是一个很好的接触。虽然这是常见做法,但不需要使用HTTP URL。
  • 之后包含一个粗略的日期(年和月是好的),以便在将来重组您的命名空间时,名称的复古(因此其内部组织)是明确的。请注意,这是首次分配URI的日期,而不是当前版本的日期。
  • 添加名称以标识此特定架构的主题,因此您可以从其他相关架构中告知它。即使主题的营销名称必须更改,此名称也应该是不可变的。也许其他拥有商标的人会让你感到惊讶,也许销售部门想要尝试一个新的旋转,但代码不应该破坏。
  • 最后,如果相同概念架构的后续版本不相互兼容,添加唯一版本控制组件以指示兼容性中断。如果版本控制是在词汇表的范围内处理的(例如通过版本属性),另一方面,请将其保留。

XSLT使用以下内容:

http://www.w3.org/1999/XSL/Transform

这符合上述模式。所有者标识符,日期和名称;并且没有版本控制组件,因为版本控制是在XSLT词汇表中处理的。

在紧要关头,你甚至可以逃脱

mailto:author@example.org?Subject=2008+XML+Basketweaving+specification

也符合模式,但建议联系点而不是信息库。