为什么XML命名空间通常以http:// ...开头?

时间:2009-08-05 10:38:10

标签: wpf xml

例如,WPF名称空间为:xmlns =“http://schemas.microsoft.com/winfx/2006/xaml/presentation”

如果我定义自己的命名空间,它是否也应该以http开头?是不是误导

5 个答案:

答案 0 :(得分:6)

命名空间的值没有任何意义,除了该值是唯一的以避免名称缩减。这就是为什么你看到许多公司将自己网站的URL作为命名空间。 URL具有相同的目的,是唯一的。多年来,使用URL只是一种好习惯,因为如果每个人都这样做,就不会发生任何名称缩减:)

答案 1 :(得分:4)

W3C Document defining XML Namespaces说(quoting):

  

定义:XML命名空间是   由URI引用标识   [RFC3986]

RFC 3986说(引用):

  

<强> 1.1.1。通用语法

     

每个URI都以方案名称开头,   如第3.1节所定义的那样   是指的规格   在该中分配标识符   方案

所以我猜使用http://是最接近标准的 - 因为HTTP是网上最常用的方案。

此外,由于域名只能有一个所有者,因此它允许每个公司在其名称空间中使用它的URL。

答案 2 :(得分:4)

另一种常用方法是使用Uniform Resource Name,其格式由RFC2141定义,而不是使用以http://开头的网址。

这种名称空间标识符例如是由ODF使用(OpenDocument格式):

urn:oasis:names:tc:opendocument:xmlns:office:1.0
urn:oasis:names:tc:opendocument:xmlns:style:1.0
urn:oasis:names:tc:opendocument:xmlns:text:1.0

答案 3 :(得分:2)

这是一种创建可读全局唯一标识符的可靠方法。它可能是也可能不是包含更多信息的有效URL。

答案 4 :(得分:2)

来自W3Schools的this article

“解析器不使用命名空间URI来查找信息。目的是为命名空间提供唯一的名称。但是,公司通常使用命名空间作为指向包含命名空间信息的网页的指针。尝试去到http://www.w3.org/TR/html4/。“