SOAP - 命名空间,它有什么用途?

5
SOAP Web服务中的命名空间用于什么?

你是指 XML 命名空间还是框架命名空间? - Mikael Svenson
3个回答

5

来自http://tempuri.org/

每个XML Web服务都需要一个唯一的命名空间,以便客户端应用程序能够将其与Web上的其他服务区分开来。默认情况下,ASP.Net Web服务使用http://tempuri.org/作为此目的的命名空间。虽然这适用于正在开发中的XML Web服务,但发布的服务应使用独特的永久命名空间。

您的XML Web服务应该由您控制的命名空间进行标识。例如,您可以在命名空间中使用公司的Internet域名作为其中的一部分。尽管许多命名空间看起来像URL,但它们不需要指向Web上的实际资源。

假设公司A和B都创建了方法签名相同的服务。为了区分它们,您可以添加命名空间。从客户端的角度来看,这会使它们不同,这意味着您不能在另一个客户端上使用一个wsdl(代理类),反之亦然。

为您的服务使用唯一的命名空间被视为良好的实践。通常是公司名称/域或类似的内容,而不使用默认的tempuri.org


如果您只将其保留为http//tempuri.org,会发生什么? - 001
没有任何事情发生,但理论上它可能会与其他某个地方的服务冲突。如果您的客户访问了这两个服务。 - Mikael Svenson
1
@Khou - 这取决于您如何部署您的服务。它提供了像Mikael所说的独特性。如果您不做任何操作,那么很可能什么也不会发生。但这并不是有经验的Web服务开发人员会做的事情。 - David Basarab

3

命名空间是一种XML概念。假设您有一个关于书籍的XML文档,其中包含一个<title>元素,并且有一个关于人员的文档,其中包含一个<title>元素。即使它们具有相同的名称,两个<title>元素也具有不同的概念意义。如果合并这些文档,您将看不到它们之间的区别。

这就是命名空间的作用。元素的完整名称由命名空间和元素名称组成,但通常缩写或省略命名空间。

XML允许您为命名空间定义较短的单词。例如,您可以定义b=http://www.books.info/my_books,然后如果您指的是该命名空间中的标题,则可以使用<b:title>


0

我认为这是System.Web.Services.Protocols


这是.NET Soap包的命名空间。其他人认为OP指的是SOAP XML文档中的命名空间。 - Sjoerd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接