2011-04-22 64 views
26

走这条线作为一个例子:为什么XML名称空间中的URL?

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
</configuration> 

一些简短的研究告诉我,没有什么必然有那个URL托管。因此,如果它只是对包含在本地程序集中的命名空间的引用,为什么使用URL而不是像.NET通常使用的常规命名空间(例如System.Data)?

+2

可能是因为它们很独特。 – 2011-04-22 17:17:48

+1

我知道URL是唯一的。为什么我们需要独特的XML标签? – osa 2013-10-24 03:06:03

回答

8

这只是一个约定。 URI(它们是什么,不是真正的URL)是一种方便且全球熟悉的资源识别方式。另一方面,对于.NET开发人员来说,.NET风格的标识符是熟悉的和可以识别的 - XML比.NET更多。

+1

希望它确实是全球独一无二的。否则,没有多少意义。 – 2011-04-22 17:28:56

+2

@罗伯特:我不同意。 XML名称空间URI只需在它们使用的上下文中是唯一的*。理想的是,除此之外,是的,但仅限于公共架构。 – skaffman 2011-04-22 17:33:31

+0

我想我仍然不理解为什么使用URI。根据我的理解和根据维基百科和其他资源,URI被定义为“用于标识Internet上名称或资源的字符串”。如果正在引用本地程序集并且名称空间URI不试图标识Internet资源,为什么要使用URI?此外,HTTP代表“超文本传输​​协议”。用任何传输协议为命名空间添加前缀是否有意义? – oscilatingcretin 2011-04-22 17:37:14

4

W3 explanation Here

就像在.NET命名空间,在XML文档中的命名空间,旨在帮助预防和解决名称冲突,特别是如果XML文档是由不同的组织和/或知识领域。

XML文档格式已经由负责HTML的相同人员编程,因此您可以在格式元素中找到语法上的相似性。在语义上,dotNET和XML命名空间实现相同的目标。

+0

我了解URI和XML文档格式的概念。我的第一篇文章讨论了为什么XML名称空间看起来像URL。是的,我知道一个URL是一个URI,但是对于一个URL有一些明显的认识。它有一个协议,一个域,一个后缀,文件夹引用,并且大多数时候是一个文档。我已经清楚地知道,XML命名空间格式就是因为原始的XML甘斯塔斯根据他们对当时事情如何运作的理解作出决定。如果XML是今天发明的,它的名字空间很可能看起来不像一个URL。 – oscilatingcretin 2011-04-23 01:07:04

+3

此外,这里有几个人说过,URL风格的命名空间给出了唯一性,但我不知道如何。对于任何URI格式都没有唯一性保证,无论是XML还是.NET风格的命名空间(除非您正在讨论URL)。在我看来,将“http”和“.com”投入命名空间并没有任何逻辑支持。如果有人拒绝续展域名注册并且其他人购买域名(微软),该怎么办?他们的URL风格的URI现在有什么好处?没有一致性,伊莫。 – oscilatingcretin 2011-04-23 01:13:59

+1

@ scilatingcretin:GUID不保证是唯一的,但正确生成的GUID与另一个GUID相同的可能性是微乎其微的。使用URL可以确保唯一性。 – 2011-05-05 15:53:51

16

当你问为什么一个标准是这样的时候,你的问题有两种可能的解释:(a)设计选择的好处是什么,(b)什么是历史序列导致这种设计被其他设计所采用的事件。

很明显,使用类似HTTP的URI提供了唯一性。但是这也可以通过其他方式实现,例如通过发明一种新的URI方案。我认为,如果您追溯当时所提出的论点,您会发现许多提倡使用HTTP风格的URI的人还提倡名称空间URI应该是可忽略的,可能是模式或其他类型的的文件。事实上,W3C针对自己的命名空间的策略是,当你在命名空间URI中输入浏览器时总会有一个可以被检索到的文档,并且它应该告诉你一些关于命名空间的有用信息。

所以我怀疑我们使用的URI看起来可以引用,但没有定义任何引用时会发生什么的语义,实际上是委员会在两个或两个以上对立的阵营之间妥协的结果。但是你必须做一些适当的历史研究来证实这一点。

0

问题的核心是名称空间必须是URI。这样的事情没有什么好的理由,因为它需要的只是一个唯一的标识符来为定义的元素提供上下文。

由于它们必须是URI,所有可能性都是没有意义的,因为即使命名空间与这样的事情无关,也需要一个方案(例如http)。

因此,要回答这个问题:为什么:像所有不好的想法一样,有人认为这是一个好主意。

相关问题