XML命名空间名称可以不是HTTP URI吗?

XML命名空间名称可以不是HTTP URI吗?,xml,xaml,xml-namespaces,Xml,Xaml,Xml Namespaces,按照我的理解,XML名称空间名称可以是任何有效的URI;然而,它们似乎总是带有http://方案的URI。这是一个规则,一个指南,只是一个惯例吗?我可以使用类似于urn:foo:bar的东西吗 下面是我的具体使用场景:我想为我的库定义一个XML名称空间,以便在XAML中更容易地使用它。我可以使用GitHub存储库的URL,但如果项目的主目录发生更改,名称空间名称将成为一个过时的URL(如果我更改它,它将破坏现有代码)。所以我想用一个URI,比如urn:myname:myproject 这是可以接

按照我的理解,XML名称空间名称可以是任何有效的URI;然而,它们似乎总是带有
http://
方案的URI。这是一个规则,一个指南,只是一个惯例吗?我可以使用类似于
urn:foo:bar
的东西吗

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

这是可以接受的做法吗?如果不是,那么什么是处理项目的主页可能会发生变化,从而使URL过时这一事实的好方法呢

“XML命名空间名称可以不是HTTP URI吗?”

当然可以。官方文档中提到了名称空间标识符的标准,并在同一位置提到了URN和URL作为任务的可能候选项:

名称空间名称为了达到其预期目的,应该具有唯一性和持久性的特性。它的目标不是直接用于检索模式(如果存在的话)。考虑到这些目标而设计的语法的一个例子是,对于统一资源名。然而,应该注意的是,普通的URL可以通过这样的方式进行管理,以实现这些相同的目标


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

谢谢!文档非常明确。它甚至包含URN命名空间名称的示例。