XML名称空间名称可以是HTTP URI以外的名称吗?

时间:2015-08-07 18:30:47

标签: xml xaml xml-namespaces

我理解它的方式,XML命名空间名称可以是任何有效的URI;然而,似乎他们总是使用http://方案的URI。这是一项规则,一项指导方针,只是一项惯例吗?我可以使用类似urn:foo:bar的内容吗?

这是我的具体使用场景:我想为我的库定义一个XML命名空间,以便在XAML中更容易使用它。我可以使用GitHub存储库的URL,但如果项目的主页发生变化,则名称空间名称将成为过时的URL(如果我更改它,它将破坏现有代码)。所以我考虑使用像urn:myname:myproject这样的URI。

这是可接受的做法吗?如果没有,那么处理项目主页可能会发生变化这一事实的好方法是什么,使得网址过时了?

1 个答案:

答案 0 :(得分:1)

  

“XML命名空间名称可以是HTTP URI以外的其他名称吗?”

当然可以。 'Namespaces in XML' 的官方文档提到了名称空间标识符的标准,并在同一地方提到了URN和URL作为该任务的可能候选者:

  

为实现其预期目的,命名空间名称应具有唯一性和持久性的特征。它不是直接用于检索模式(如果存在)的目标。设计时考虑到这些目标的语法示例是统一资源名称 [RFC2141]。但是,应该注意的是,普通的 URL 可以通过实现这些目标的方式进行管理。

因此,只要您要使用的URI具有推荐的特性,我就会说使用它是可以接受的做法。