为什么XML中的命名空间指定http:?

Max*_*ffe 5 xml wcf

请为我清理一些东西.我正在学习WCF并看到使用Namespace ="http://www.mywebsite.com/andsoforth"参数化的ServiceContractAttribute

我在另一个问题中读到,Namespaces是唯一的不透明键.它们通常是URL,而不是使用GUID,因为合法的URL保证是唯一的.

为什么用命名空间URL指定"http:"方案?为什么不只是URL?

谢谢你澄清这一点.

leo*_*onm 2

您是正确的,命名空间名称(或 URI)只是定义命名空间的唯一标识符。例如,http://www.w3.org/1999/xhtml实际上并不包含 XHTML 的模式,而是包含人类可读的文档。标识符只是一个 URI。

该协议是 URI 定义的一部分。例如,如果我创建一个文件夹并将其命名为“directory.com”,则我可以在本地计算机上完美解析 file://directory.com/file 。但是,它将是与http://directory.com/file托管的资源完全不同的资源。计算机需要协议才能知道我想要哪一个。

换句话说,我们选择 URI 来唯一定义命名空间。协议是URI的重要组成部分,用于分隔资源。

从理论上讲,两个命名空间和两个不同的协议意味着两个不同的事物是有效的。像许多事情一样,这可能是一个坏主意,因为它会引起混乱,但这是可能的。