Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 我不明白为什么web服务需要使用名称空间进行唯一标识_Xml_Wcf - Fatal编程技术网

Xml 我不明白为什么web服务需要使用名称空间进行唯一标识

Xml 我不明白为什么web服务需要使用名称空间进行唯一标识,xml,wcf,Xml,Wcf,每个XML Web服务都需要一个唯一的 为客户端排序的命名空间 应用程序来区分它与 网络上的其他服务。通过 默认情况下,ASP.NETWeb服务使用 为此目的。 而这也适用于XML-Web 正在开发中的服务,已出版 服务应使用独特的, 永久名称空间。您的XML Web 服务应通过 您控制的名称空间。对于 例如,您可以使用您公司的 互联网域名作为 命名空间。尽管有许多名称空间 看起来像URL,它们不需要指向 网络上的实际资源 我知道XML名称空间帮助我们唯一地识别由XML模式定义的词汇表。但我不明

每个XML Web服务都需要一个唯一的 为客户端排序的命名空间 应用程序来区分它与 网络上的其他服务。通过 默认情况下,ASP.NETWeb服务使用 为此目的。 而这也适用于XML-Web 正在开发中的服务,已出版 服务应使用独特的, 永久名称空间。您的XML Web 服务应通过 您控制的名称空间。对于 例如,您可以使用您公司的 互联网域名作为 命名空间。尽管有许多名称空间 看起来像URL,它们不需要指向 网络上的实际资源

我知道XML名称空间帮助我们唯一地识别由XML模式定义的词汇表。但我不明白为什么web服务也需要使用名称空间进行唯一标识

也就是说,为了让客户机能够与服务通信,它需要知道服务的地址、绑定和合同,就是这样。那么,为什么使用相同名称空间的两个不同服务会给尝试使用这两个服务的客户机带来任何问题呢

我知道Xml名称空间有帮助 美国唯一识别词汇 由Xml模式定义。但我没能做到 了解为什么web服务也需要 使用名称空间唯一标识

出于同样的原因。要唯一标识服务,请执行以下操作


服务可以有多个端点。如果两个端点运行相同的服务,则名称空间可以帮助您识别它们是相同服务的实现


唯一的服务名称空间也可用于指示特定服务的版本。

您基本上是正确的:每个服务都有一个名称空间,因此如果您知道WSDL的URL(或者如果您有它的副本),则名称空间没有特别大的帮助。但是,名称空间是永久的,而WSDL不是。在您查找服务的WSDL位置的服务中(例如UDDI服务器),名称空间是一种了解您真正谈论的是您感兴趣的服务的方式

和往常一样,我们使用名称空间作为抽象层,因此我们不依赖于WSDL(或者更糟糕的是,端点)的位置来知道我们在谈论哪个服务


这就是说,名称空间在我们的大多数WS使用中并没有多大区别,因为我们使用WSDL的物理位置来确定服务的位置。你可以使用tempuri,但人们会笑,尽管笑话真的在他们身上。

“服务可以有多个端点。如果两个端点运行同一个服务,名称空间可以帮助你认识到它们是同一个服务的实现。”嗯,我必须说我不太理解你的论点。当查询服务的mex端点时,它返回wsdl,指定该服务具有的端点。所以我不明白为什么您需要一个名称空间来告诉您这两个端点属于同一个服务,因为您在为该服务请求元数据时就知道了?!服务的URL或位置不一定定义服务。(Web)服务可以托管在不同的位置和提供商中,并且可以是同一个服务。通过名称空间唯一地标识事物可以消除歧义。是的,您也可以尝试通过服务的元数据来解析它的标识,但是如果您首先唯一地标识了服务,您就不必这样做了。此外,如果两个不同的服务使用相同的名称空间,代码生成工具可能会生成相互踩踏的存根,并存在其他标识/版本控制冲突。“在服务中,您可以在WSDL中查找服务的位置——例如UDDI服务器——名称空间是一种了解您真正谈论的是您感兴趣的服务的方式。“A-您的意思是,如果我们只知道服务的名称空间,我们可以在UDDI中搜索使用该名称空间的服务,UDDI将为该服务返回适当的wsdl?B-因此,在服务中使用名称空间的主要目的是,我们可以使用它们来定位我们感兴趣的服务的wsdl(使用UDDI服务器或为特定名称空间返回适当wsdl的任何东西)@user437291-a-是,B-是,还可以为服务提供唯一标识符,虽然它可能永远不会被使用。当然。还要注意@Mads Hansen的评论,他注意到一个服务可能托管在多个位置(但共享一个命名空间)。